也谈Windows禁用虚拟内存

经常能够看到一些人表示禁用虚拟内存后会造成系统不稳定,微软设置虚拟内存功能必有其存在意义之类,那么我今天就作为一个禁用虚拟内存长达四年的用户来简单谈一下虚拟内存的禁用问题。当然,我并不是什么对操作系统非常熟悉的人,所以如果你能在这种情况下看完我的文章并对我错误百出的文章表示理解的话,我是会非常感谢的。

如果你能够为我提供一些建议来完善这篇文章,我会更感谢的。

本文在如下环境下讨论:

仅限于Windows XP和Windows 7,也请评论的朋友们谨慎谈论早期Windows操作系统和Linux/Unix操作系统。
我没有SSD,所以无法讨论虚拟内存在SSD下的表现。
确保无论任何时候,物理内存大于你的内存使用峰值。在你的内存使用峰值大于你的物理内存的时候,讨论禁用虚拟内存是没有任何意义的。

那么首先来说说禁用虚拟内存的优缺点:

禁用虚拟内存的缺点:
有更大的几率造成物理内存不足并引发系统崩溃,但这并不在讨论环境之下。
某些应用程序或系统功能会推荐开启虚拟内存否则会提示。
某些应用程序或系统功能会要求强制开启虚拟内存(例如下一条)。
系统崩溃后无法进行内存转储,从而无法分析系统崩溃原因。
某些应用程序会在崩溃后无法从已被禁用的虚拟内存中恢复工作。

禁用虚拟内存的优点:
减少磁盘I/O(其实后面几个优点都是围绕本条展开,所以综述下来只有这一个优点)
最明显的表现是在几个大应用程序之间切换再也不会卡顿了,例如从WOW中切换出来点开任务栏中的已经开了十个页面的Chrome时
其次就是提升操作系统开机速度(进入Shell之后),因为这是每一个用户都会面临的大密度磁盘I/O事件
让系统和应用程序预读取带来的性能提升更高(直接读入物理内存)
对于移动用户更加省电
略微提升被盗电脑安全性(虽然我觉得相比你的虚拟内存内容,小偷应该会对你的硬盘里的文件更加感兴趣)

然后,如果你看到这里,如果能够为我补充一些内容的话我会非常感谢。

有关内存机制的问题这里就不详谈了,网上的资料有很多。我在这里只谈一些我的亲身经历。

在几年前,我还天天在WOW里刷副本,那时候我把我的XP升级到了1.5GB的内存——虽然如此,我还是对机器的性能不满意。我是团队领袖,那时候还木有DKP插件,我需要经常在游戏中切换出来查询团员的DKP并作各种记录。但我从游戏中切换出来的时候,网页总是会卡在那里好几秒,让我很痛苦。

后来我禁用了虚拟内存,然后团员们纷纷表示我记录DKP的速度变快了。我的这个动作节约了几十个人的时间。

自打那时我便常年地禁用虚拟内存了。虽然禁用虚拟内存后给我带来了一些不便——例如1.5GB内存无法双开WOW,我都是临时设置上虚拟内存然后再关掉——增加虚拟内存不需要重新启动,而顺手关掉就能够在下一次启动后禁用了。

然后等我换了新电脑和WIn7,我甚至将内存加到8GB以保证物理内存大于我的峰值内存使用。

在禁用虚拟内存的四年中,唯一出现的系统崩溃情况就是内存不足。除此之外,受限于我的系统环境,我并未有发现任何因为虚拟内存被禁用而造成的系统稳定性下降。

因此我的结论:

如果你需要非常稳定的开发环境,包括但不仅限于软件开发,请不要禁用虚拟内存。虚拟内存会为你带来更大的内存和较为可靠的崩溃恢复——在ECC内存还没普及到桌面平台的现在。
如果你追求性能但又不愿意购买SSD,包括但不仅限于大型游戏,禁用虚拟内存会让你的体验更加流畅,至少不会因为突然的磁盘I/O造成的游戏卡顿而被团长骂个狗血淋头。
如果你想延长电脑在电池下的使用时间,或许可以考虑临时禁用虚拟内存。不知道有没有办法可以在启动时选择是否开启预设的虚拟内存。

(最后,我是短期内不会购买SSD了,首先SSD崩溃的几率比禁用虚拟内存崩溃的几率大了不知多少倍,并且——内存不足的崩溃最多只要重启就好,SSD的崩溃需要我花至少一个小时来更换硬盘并从镜像恢复——而且还可能是昨天甚至是上个月的镜像,完事之后还得打电话送修……)

2 thoughts on “也谈Windows禁用虚拟内存

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

您正在使用您的 WordPress.com 账号评论。 注销 /  更改 )

Facebook photo

您正在使用您的 Facebook 账号评论。 注销 /  更改 )

Connecting to %s