首页>>学生风采>>武汉职业技术学院熊佩>>观点>>走出虚拟内存禁用的误区

走出虚拟内存禁用的误区

作者:熊佩
日期:2011/10/28 8:48:02

最近大家都经常谈论的话题,就是 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:\WINDOWS\RAMDRIVE.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 优先使用物理内 存,尽量不要强行直接禁用虚拟内存交换文件。
结论
笔者认为,禁用虚拟内存达到的加速效果很有限,加上一般 Windows 的默认设置比较适当,尤其是 Windows 2000/XP 默认 设置对虚拟内存的管理很好,尽量不要随意更改,否则出了问题你很 难判断和分析。
题外话:有关内存的一些故障分析 有时,Windows 出现一些和内存有关的故障提示,不一定是和内存有关;而一些看似和内存无关的故障,却真是内存引起的,很有隐蔽性。 比如:你用 PQ 分区大师之类的工具改过分区簇的大小,当簇小于默认值时,Windows 98 运行磁盘扫描就可能会报内存不足,而在 Windows 2000 和 Windows XP 下则正常——也就是说,这跟 内存根本没关系。 再比如:有时开机进入 Windows 时,系统会提示你注册表错误, 是否恢复,当你选恢复后,再次重启,还是同一个提示,这种故障, 却多半是内存条或散热方面出了问题引起的,需要更换内存或是风扇 了。
所以,Windows 的提示有时会误导用户,如果反复出现同一种 故障,按其提示解决不了,应考虑 Windows 误报的可能性。

分享