手把手教你正确设置虚拟内存

最近大家都经常谈论的话题 , 就是DDR内存的大降价 , DDR266从400多元的位置暴跌到200元左右 , 很多人都用上了512MB甚至1GB的内存 , 于是有一种观点也在部分玩家中流行起来 , 说是禁用虚拟内存、禁止Windows页面文件交换、强行命令数据在内存中处理 , 可以加快数据读写效率 , 是不是真的这样呢?

根据应用需要设置

首先 , 要搞清楚什么是“大内存”配置 。当初设计Windows使用虚拟内存本身是因为物理内存很贵 , 一般都不会超过128MB容量 , 需要硬盘空间作临时缓冲——也就是说 , 你应该把应用时需要多少物理内存和自己实际拥有的内存作一个比较 , 如果实际拥有的内存少于应用峰值 , 就会遇到麻烦了 。

一般来说 , 如果要进行平面大图、3D动画渲染等数据量很大的任务 , 不应禁用虚拟内存;如果经常要打印带大量图片的文档 , 禁止虚拟内存也会让程序出现错误 。因为像Word一类软件打印之前要生成缓冲文件 , 再传输到打印机上 , 图片尺寸较大、分辨率较高时 , 需要的缓冲区容量也很大 , 笔者以前帮助广告美工出设计图时 , 就遇到打印一张图生成将近300MB临时文件的情况 。因为Windows和应用程序本身也是需要一定内存来运行的 , 如果你是512MB的配置 , 禁用了虚拟内存 , 很有可能中途报告虚拟内存不足 , 强行退出造成打印纸张及油墨的浪费 。

所以 , 必须根据你的任务应用环境 , 来决定是否禁用虚拟内存 。即使是把虚拟内存大小固定设置 , 也必须谨慎 , 否则在运行大型应用软件的时候才出现虚拟内存不足的提示 , 整个系统会因为CPU的占用率极高而变得很慢 , 此时再改动就没那么方便了 。

考虑操作系统的因素

在不同的操作系统下 , 虚拟内存的设置或禁用也是不同的 , 不能一概而论 。

因为架构问题 , Windows 9x/Me对大于256MB的内存有先天的不足 , 大于这个数量的内存 , Windows 98会出现不稳定及启动速度变慢的情况 。如果使用了大内存加上禁用虚拟内存 , 不稳定的因素将会进一步增加 。Windows 2000/XP可有效管理的内存容量为1GB左右 , 大于这个数目也会出现不稳定的情况 , 而且视主板BIOS型号及芯片组性能而不同 。

另外 , Windows本身的设计就是 , 一旦发现有进程转入不活跃状态 , 就会把分配给它的内存空间映射到交换文件中 , 尽可能空出物理内存给其它活动的线程 , 并不是用完物理内存才开始动用交换文件 。因为如果等到物理内存用完再调用 , 就已经太迟了 , 在配置较低的机器上势必造成数据传输和处理停滞 。所以禁止虚拟内存从原则上来讲 , 最容易引起Windows异常 , 即使不出现运行不了的故障 , 也会频繁地提示虚拟内存不够 , 请重新设置云云 , 让你不胜其烦 。

如何禁用虚拟内存

对于拥有很大容量内存的朋友 , 如果真想禁用虚拟内存加快运行速度 , 其实可以用折中的办法“骗”过Windows , 就是把物理内存划出一部分来虚拟成物理硬盘:

1.Windows 98

可以在Config.sys里加入一句:

DEVICE=C:WINDOWSRAMDRIVE.SYS 23000 /E(请根据自己的Windows所在分区适当设置)

这句话就是利用内存由Ramdrive.sys虚拟出一个分区 , 其中23000是你希望使用多少物理内存 , 单位是KB , 如果你有1GB , 可以把这个数字设到300000到500000左右 , 即300~500MB , 然后把虚拟内存设置到该虚拟出的分区上 , 程序就完全在物理内存中运行了 。

2.Windows 2000/XP

必须依靠第三方的工具软件来虚拟物理硬盘 , 然后再把Pagefile.sys页面文件设到该虚拟盘上 , 实现同样效果;或者可在System.ini中的“[386enh]”底部加入一句 , ConservativeSwapfileUsage=1 , 让Windows优先使用物理内存 , 尽量不要强行直接禁用虚拟内存交换文件 。

推荐阅读