2006年3月14日星期二

Windows Vista: 800M 的内存消耗是如何谣传出来的?

windows随着发布日期的临近, 关于 Windows Vista 的消息是越来越多. 不过, 这些消息, 很多都是错误的. 简而言之, Vista 被误会的很深. 不久前, 一条 Windows Vista 消耗800M内存的消息在网上随处可见, 但这是真的么? 我们来看看国外某作者的分析.

你可能看过那些 Windows Vista 在空闲状态下消耗800M内存的消息吧, 其实这不过是一个误会罢了, 现实情况并没有那么夸张. 为了消除误会, 搞清楚3个问题很为重要: 提交更改的内存量 (PF使用率) 到底代表什么; Beta 版的截图并不能代表最终正式版本的情况; Windows 会根据系统的条件来调整内存的使用方案.

首先我们来看看什么是提交的内存量, 就是那个在任务管理器上显示为PF使用率和提交更改的东西. 提交的内存量在x86架构下被组织为了4096页, 是进程为自己使用 (私用, 而非共享或者映射) 所提出的需求申请. 用户们常常为内存总量不等于物理内存减去提交更改的内存量而困惑不已. 简单来讲, 提交更改的内存量 (PF使用率) 并非当前正在使用的物理内存或者页面文件数量, 而是进程请求的私有虚拟内存总数 (不管是在RAM或者页面文件中).

以在网上广为流传的那个任务管理器截图为例, 该图号称 Vista 在空闲状态下消耗了800M的内存. 不过细细一算, 该图中, 正在使用的物理内存只有395M, 算得更粗略一些也就400M. 系统的1G内存仍有大半可用.

还有, 截图本身并不能反映 Vista 的新版本或者其他一些环境下内存使用状况. 下图是从我机子上截下来的, Vista Ultimate Edition 外加 IIS7 和运行了搜索服务的 Virtual Server 2005 R2. 加上这些服务后, 提交更改的内存量大概为665M.
 

再来看看这张, 320万像素的桌面, 开 Aero Glass 效果, 同时还运行了多个程序. 包括 Windows Media Player (播放 640x480 的 MPEG-2 视频) , 开了多个标签的IE7, 进行 IRC 和 MSN 会话的 GAIM, 开 Sidebar, 正在转换视频的 Tivo Desktop, 还有刚才提到的IIS7和微软的 Virtual Server. 总共算下来也就1.04G的提交更改量, 占总可用数的1/4, 实际上只用了400M的物理内存. 显然, 这一 build 的 Vista 比那个消耗800M的具有更高效的内存管理.


让我们来看看最后一点, Windows 会根据可用的资源来调整内存使用的策略. 不管是虚拟内存管理还是系统的进程和服务, 都具有多重的运行机制, 足以合理的来分配和使用内存. 提交更改的内存和实际使用的内存都能根据不同的系统环境进行自我调节. 下图截自一台运行 Vista 的机器, 512M的内存. 空闲的状态下, 该系统内存的提交更改量大约为237M, 比物理内存的一半略多.
 

再来一张低端笔记本上运行XP时的截图, 也基本类似.

综所上述, 近期版本的 Vista 在内存需求和使用上并非一成不变, 也不是仅有一种调配方案, 更不能代表最终版本的情况.

新闻来源: thelazyadmin.com  (Aoouch 编译)

没有评论: