日期:2014-05-17  浏览次数:20996 次

【转载】32位Windows7上8G内存使用感受

一直在寻找,32位的Windows操作系统怎么使用大于4G的内存呢,32位Linux系统最大内存也是支持到4G吗?偶然有一天看到以下博文,终于搞清楚了这些问题,在此感谢原博主,现转载如下:

http://www.cnblogs.com/tinyfish/archive/2010/12/06/1897583.html

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物理内存:

image

?

8G内存使用后,是否如之前所料,磁盘缓存起到了应有的作用呢?先来看看内存资源使用情况:

image