32位Windows7上8G内存使用感受
为什么要使用8G内存?在国内外各大论坛上,这都是一个有争议的问题。问题的反方论据非常充分:
- 除了少数专业领域,大多数应用程序不会需要超过1G的内存。
- 游戏使用的内存最多也是2G而已。
- 8G内存不便宜,不如花在显卡上。
- 升级到8G后没有什么明显变化。
- 8G内存要用64位操作系统,兼容性不佳。
平心而论,这些都是合理的理由。从我自身的角度,一个程序员,最多的应用就是IDE,Visual Studio和Eclipse都是内存大户。但从实际测试情况看,Visual Studio即使开5、6个,4G内存也还是够用的。
我使用8G内存,是因为其他的想法。
我还想再提高系统性能。众所周知,现在的硬件中,硬盘是最后的瓶颈。温彻斯特硬盘除了提高磁密度,已经没有明显提高性能的途径了。而SSD性能确实不错,但价格太高、寿命太短的问题短期内无法解决。混合硬盘应该是未来一段时期的亮点,这个还要靠软硬件厂商的积极推动。我想,要提高硬盘性能,还有一条切实可行的路:使用内存做硬盘缓存。内存的价格一直持续下降,可以预见大内存的应用不会太难。磁盘缓存是成熟的技术,操作系统支持得很好。顺便提一句,我一直认为Win7的磁盘缓存算法比WinXP改进了很多,但没找到明文证据,希望有人指导一下。
既然有了想法,我就实践一次。
首先,32位系统上,通过ReadyFor4G破解,可以使用超过4G的内存。这点很重要,现阶段我还不能牺牲系统兼容性。这里要纠正一个常识错误:32位系统不能使用大于4G的内存。早在16位系统上,系统可使用的内存就远远大于64K了,这是因为采用了内存分段和20位地址线。那么在32位系统上,使用36位地址线也就是顺理成章的事情。所以在当前x86架构中,32位系统最多可以使用128G的内存。Windows系统因为MS的人为限制,不允许用于使用大于4G的内存。Windows Server 2003 32bit DataCenter版官方声明就可以使用32G内存,而Linux系统就直接支持4G以上的内存。ReadyFor4G通过直接修改Windows内核,去除这个限制。不过,这个方法也有限制,一些不规范的驱动程序不能支持大于4G的内存,会导致系统崩溃。在我的ThinkPad T410s上,如果打开显卡切换功能,相应的驱动程序就会导致系统启动时蓝屏。为了使用更多内存,我只好关闭了集成显卡,仅使用NVS 3100M独立显卡。而其他驱动程序都没有问题。在我的ATI显卡台式机上,也顺利破解。说明对于较新的硬件和驱动程序,兼容性可以保证。其实就算只有4G内存,ReadFor4G也能额外使用500-1000M的内存,提升明显,不再赘述。
其次,现在4G x 2的价格还可以接受,淘宝上包邮¥780搞定。开始我还担心内存兼容性,查阅资料发现,现在的内存已经很少出现兼容性问题,甚至不同品牌的混用也经常成功。
安装完毕后,打开任务管理器,可以看到8G物理内存:
8G内存使用后,是否如之前所料,磁盘缓存起到了应有的作用呢?先来看看内存资源使用情况:
此时我开启了2个IDE,1个浏览器,2个通讯软件,Windows Live Writer,还有若干小应用程序。已经使用的内存4012M,看来4G内存确实是不够用的。为什么以前不觉得4G不够呢?因为以前开启了这么多程序,页面文件的使用会明显增加,而现在页面文件的使用量查得为147M:
所以物理内存占用更多了。这样带来的直接好处就是程序响应更快。以前在开启较多程序后,硬盘读写次数明显增加,程序的反应速度下降。而现在即使开启了多个程序,其使用依然流程,跟仅开启一个程序时没有什么区别。现在使用多个IDE,瞬间切换,立即使用,不会有任何延迟,如臂使指的感觉非常舒服。
让我们再回到内存资源分配图,其中Standby的内存为3869M。Standby的内存其实就是磁盘缓存数据。接近4G的磁盘缓存,保证了我常用的磁盘文件能以最快的速度读写。这个感受最直观的应该是在游戏中,切换场景的速度明显加快,磁盘读取明显减少,不用喝茶等待了。
根据我平时的使用习惯,一般不会关闭机器,而是使用睡眠或休眠的方式。这样的好处是可以保持内存中的缓存数据,下次开机不用重新加载,操作快速如旧。
所以,能够保证持续流畅的使用体验,是大内存的优势。4G内存对于运行程序和游戏,确实是足够的。但更多的内存能够提供更流畅的用户体验,让PC更像家电,速度体验始终如一。我认为8G内存只是起步,毕竟只够提供4G缓存,16G或更多内存也会有明显效果。配合写缓存和休眠模式,PC的性能可以不再受限于硬盘。未来也可能会出现带锂电池的专用缓存,在提高性能的同时保证数据的安全性。