Win7虚拟内存有什么用?( 二 )


3. 物理内存充足时分页文件工作吗
虽然实测结果表明分页文件对于目前的大内存系统仍然有提高性能的作用,但我敢说,很多网友肯定还有另外一个疑虑——分页文件到底和物理内存是个啥关系?频繁的硬盘读写难道真不会拖累系统运行么?

Win7虚拟内存有什么用?

文章插图
AIDA64检测图
要回答这个问题其实也很简单,只要借助一款第三方软件——AIDA64就可以了 。上图是硬件检测软件AIDA64对笔者电脑的检测,可以看到当前电脑的 存储系统是由4GB物理内存、4GB分页文件共同组成,其中物理内存 分页文件的总和被AIDA64称作交换区(Windows称“虚拟内存”) 。那么当 一款程序启动时,它究竟会首先使用物理内存?还是按照整个虚拟内存的概念同步使用呢?
这里需要说明的是,微软有关虚拟内存的定义是与 AIDA64不同的,它是将物理内存 分页文件视为一个虚拟内存(相当于AIDA64中的“交换区”),而AIDA64则是将物理内存 交换区视为虚拟内 存 。说实话AIDA64的这种划分比较令人费解,因为将一个现实数值(物理内存)与一个虚拟数值(交换区)合并原本就没有什么实际意义 。因此这里我们主要 还是以微软定义为准 。
最终答案非常明显,就是当物理内存用尽后,Windows才会启用分页文件 。如果你不信,不妨也像我一样打开 AIDA64(软件支持实时更新,可以很直观地看到各个数值的变化),然后随意启动几款程序,观察一下“页面文件”的数值变化 。你会发现随着程序启动,物 理内存和交换区数值都在持续变化,唯独页面文件却始终保持着0MB 。
换句话说,在物理内存可以满足当前需要时,Windows并不会弃用高速内存而选用速度更慢的硬盘文件(分页文件),因此我们丝毫不必担心开启分页文件会影响系统整体性能,除非是你的物理内存真的无法满足系统需要 。
4. 分页文件如何设置才合理
那么又一个问题来了,如果说分页文件在现今的Windows中仍然有利无弊的话,那么我们究竟是应该让Windows自行管理,还是给它设定一个具体的数值呢?
有关这个问题,笔者曾经和一位微软工程师聊过,双方的焦点在于,分页文件是一项很古老的设置,最初是将其设定为一个可变量,官方推荐是物理内存的1.5倍(即你在系统→分页文件设置框内看到的推荐值) 。
但要注意的是,这条规则的设计背景是在数十年前,那时的内存普遍只有几十兆(服务器也不过如此) 。但时至今日,当物理内存已经跨入GB时代,甚至个别用户已经用上16GB以上的超大内存,再去一昧照搬从前的标准显然并不适合 。
Win7虚拟内存有什么用?

文章插图
系统托管真的合理么?
依然还是开头图书馆的例子,现在的情形可以变更为馆藏容量未变(10000本),但每人每次的可借阅数升级为15本(即物理内存变大了),相应门口小书 架的图书量也增加为500本(分页文件按比例扩大) 。那么问题来了,如果说50本的小书架可以帮我们提高效率的话,那么500本书架所消耗的时间又是多 少?如果碰巧这500本中仍然没有你想要的,需要重新进入图书馆(10000本)里继续查找的话,系统效率不慢才怪 。
回到现实版中来,小书架容量的暴增其实就相当于分页文件扩张(比如16GB内存按微软标准计算就是16GB~24GB),那么在现行机械硬盘的读取速度下(这里不考虑随机 读取与线性读取区别),若想遍历一遍16GB或者24GB空间所花费的时间,恐怕也是相当大的 。换句话说,如此一来分页文件非但没有提高系统性能,反而真 的会成为系统性能的拖累!

推荐阅读