1G内存够用吗?再谈虚拟内存的合理设置

现在内存的价钱越来越便宜,很多新装机的朋友都已经在使用1GB的内存,而还有很多人也在给老电脑的内存升级 。在升级了物理内存之后,如何有效设置虚拟内存才能获得最大限度的性能提升?网上流传的一些优化虚拟内存的方法真的有效吗?这些就是本文将要讨论的内容 。

网上有很多广泛流传的关于虚拟内存优化的技巧,其实很多都是经不起推敲的 。大家一起来看看吧 。

观点一:对于拥有大容量物理内存的用户,可以完全禁用虚拟内存 。要彻底了解这个问题,首先得明白什么是虚拟内存,以及虚拟内存有什么作用 。在早期,因为内存价格非常昂贵,因此一般电脑上都不会配置太多,那么有时候如果操作系统和应用程序需要的内存数量超过了计算机中安装的物理内存数量,操作系统就会暂时将不需要访问的数据通过一种叫做“分页”的操作写入到硬盘上一个特殊的文件中,从而给需要立刻使用内存的程序和数据释放内存 。这个位于硬盘上的特殊文件就是分页文件(也就是虚拟内存文件或叫做交换文件) 。对于Windows 2000/XP/2003操作系统,分页文件名为pagefile.sys,默认情况下位于操作系统所在分区的根目录下 。

既然知道了虚拟内存的由来和作用,那么持这种理论的人认为,硬盘和内存的速度具有天壤之别,如果禁用了虚拟内存,系统就不需要花时间将内存中的数据分页到硬盘上,从而提高了系统的运行效率 。然而根据传统的设计,Windows 的许多核心功能都需要使用分页文件,而如果你禁用了所有分页文件,有些第三方的应用软件都可能会遇到内存不足的错误 。其实在不需要的时候,Windows并不会使用分页文件,因此这样调整系统你并不能获得任何性能上的提高 。

观点二:对于虚拟内存,建议的设置是物理内存数量的1.5-2倍(分别为虚拟内存的最小值和最大值) 。在讨论这个问题之前首先看两种情况:有两台电脑,除了内存,其他所有配置都相同 。电脑A拥有128MB内存,电脑B拥有1GB内存,这两台电脑都运行Windows XP操作系统 。按照这个观点的方法设置,电脑A的虚拟内存将会设置为192MB-256MB,而电脑B的虚拟内存将会设置为1.5GB-2GB 。那么实际使用中呢,电脑A很可能会在运行大型软件或者游戏的时候产生虚拟内存不足的问题,而电脑B则会因为设置了如此大的分页文件而导致硬盘空间的浪费 。如何根据实际情况设置虚拟内存,这个我们会在下文中介绍 。

观点三:我们可以使用内存释放软件将运行中的程序占用的内存释放出来,提高系统运行效率 。在否定这个观点之前我们首先要明白一件事,任何程序,只要被执行,就会占用一定的内存空间(具体占用多少内存则取决于程序自己的体积以及载入的数据文件的大小),那么这种所谓的内存释放软件是如何生效的?软件并没有退出,从哪里释放内存呢?原来这种“优化”软件会把程序占用的内存全部分页到虚拟内存中,从而造成了物理内存被释放的“假象” 。

安装有这类软件的朋友可以试试看,打开Windows任务管理器,打开进程选项卡,接着在“查看”菜单下选择“选择列”命令,在随后出现的选择列对话框中选中“虚拟内存大小”这一选项 。接着你的任务管理器将会变成类似图一的样子 。


记住几个占用内存比较多的进程各自使用的内存数和虚拟内存数,然后使用内存释放软件进行释放 。本文将会使用微软发布的Windows Server 2003 Resource Kit工具empty.exe,该工具前段时间在网上非常风光,很多人都宣称具有释放空闲内存的作用(虽然还有其他释放内存的工具,不过原理上都是一样的) 。运行“empty *.*”,可以看到,在短时间内,之前占用了大量物理内存的进程占用的物理内存数量都变得很少,而虚拟内存用量增加了(图二),但是这种现象只持续了很短的时间 。马上,这些进程占用的物理内存数量又开始回升了 。

推荐阅读