分类:
2008-10-16 18:43:08
Vista对内存管理的方法与其他windows可不同.从下图的任务管理页面的物理内存参数项(Physical Memory)可以看到:
Vista任务管理器
只有6M内存显示的是空闲状态,而此刻Vista系统上仅仅运行了IE7浏览器的几个窗口和几个远程桌面管理程序而已。为什么只运行了很少的应用却只剩下6M的空闲物理内存了呢?
下面的图片反映的是运行类似应用的XP系统的任务管理器页面的参数表现:
Windows XP任务管理器
在可用物理内存参数(Physical Memory, AVailable)项上大约有1.5Gb的物理内存可用呢。
究竟怎么回事呢?为什么在Vista上运行这么一点应用就消耗了这么多的物理内存呢?
为了揭开这个疑惑?让我们先来考察一下写字板应用程序的工作原理,以便认识计算机物理内存的用处,假设用户需要利用写字板程序来创建一个新的文本文件:
看起来写字板程序执行仅需要消耗很少的内存,另外显示保存文本内容的内存也不是很多,最多几兆不得了了,那剩下的系统内存用到哪里去了呢?
现在你必须把内存当作缓存来看待,就象是cpu中的第一级缓存和第二级缓存那样,内存也是存在计算机中心计算单元和数据的磁盘介质之间的另外一种高速缓存装置。
而缓存装置的重要设计规则就是:“空闲的缓存就是浪费了的缓存”,空缓存对用户是没有帮助的。每种缓存的主要目的就是尽量提高所需数据处理的速度,否则你还不如直接到硬盘等磁盘介质中去取数据来完成运算。硬盘中直接提取数据到处理器进行运算是非常慢的。
2006年1月份,工程师Diomidis Spinellis在普通办公电脑上总结出了缓存性能比例的一张参考表:
总结上表数据可以看出,各种缓存比硬盘快出的倍数:
上面的数据解释了为何在VISTA下的空闲物理内存只有6兆的原因,Vista把绝大多数物理内存都当成了一个名叫超级预存取块,即 SuperFetch的缓存装置,Vista利用SuperFetch内存缓存装置,动态地把系统经常需要用的后台程序和磁盘数据预先提取到缓存中,随时加速应用的运行。这就是Vista管理内存不同与XP等系统的地方。
SuperFetch的内存管理设计方法,对玩大型的游戏程序时,表现的效果尤为突出,比如BattleField 2游戏。