突破Windows系统内存限制的方法。
幸运的是,还是有一些方法来躲开Windows系统的内存限制的。其中的一种就是使用“物理内存扩展”(PAE),这是X86处理器的一个特点,可以让32位操作系统突破4GB的内存限制。另一篇MSDN上的文章解释了32位Windows系统对PAE的支持。要说明的是,即使开启了PAE之后,XP和Vista仍旧存在4GB内存的限制,但是这个方法可以帮你把那些未使用的内存给利用起来一部分。在很少的一、两种情形下,一名开发者可以利用PAE技术来绕过通常的Windows限制。比如,读者AlanGorski就发现,当他把内存增加到8GB的时候,AutoCAD在打开大型图形文件时就不会再出现之前常见的“内存耗尽”错误。正如他所言,“自从DOS时代起,AutoCAD就一直在使用特殊的内存管理技术来最大可能的利用内存”。你的系统也有大好机会来使用PAE。那是因为Windows依靠这种技术来支持一种安全特性,即所谓的“数据执行防护”(DEP)。更多的Windows和DEP的信息,请参考我在2007年5月3日的“TopStory”文章。如果一台电脑支持硬件增强的DEP,那么也就会支持PAE。下面就是如何在WindowsXP系统中检查这一点的方法:1、点击“开始”——“运行”。2、在“运行”框里输入“sysdm.cpl”,回车。3、点击“高级”标签。在“性能”部分,点击“设置”并在接下来的界面中选择“数据执行防护”标签。4、查看“数据执行防护”标签界面中底部的状态信息。如果显示你的硬件不支持DEP,那么也就没有机会使用PAE。
要在Vista中检查系统PAE的状态,进行如下的操作:1、利用组合键“Win+R”打开“运行”对话框。2、在运行框里输入“SystemPropertiesDataExecutionPrevention”,回车。3、如果系统提示“UAC”,点击“继续”。4、如果对话框的底部状态信息显示你的系统支持DEP并且“打开”对话框被选择了,那么系统是支持PAE的。
如果你的系统中PAE还没有开启,下面就是在Windows XP中激活它的方法:1、点击“开始”——“运行”。2、在输入框里输入“notepadc:boot.ini”,回车。3、在打开的“boot.ini”文件中,找到“[operatingsystems]”部分,其中有一行包含“/noexecute 参数”,这就是用来打开软件DEP的。比如,这一行可能是“/noexecute=optin”、“/noexecute=optout”或者“/noexecute=alwayson”。在上述参数后面,先输入一个“空格”,然后再输入“/pae”。保存此文件,重启。
如果你不想在Vista系统中开启DEP(或者你不愿意使它开启),你还可以用下面的方法来激活PAE:1、点击“开始”——“运行”(译注:原文似乎少了这一“运行”而是直接就是后面的输入某某),输入“cmd.exe”,按“Ctrl+Shift+Enter”。2、如果弹出UAC提示,点击“继续”。这会打开一个具有管理员权限的命令提示窗口。3、在提示符后,输入“BCDEdit /set PAEForceEnable”并回车。

更多的关于PAE的信息,可以在微软TechNet网站中的这篇文章中找到。在TechNet的另外一篇文章中,微软警告说,如果启用了PAE,那么有一些驱动程序将不会加载。当你做了上述改动之后,要注意一下你的系统。如果你的驱动程序出现了问题,或者系统启动异常,那么,对于XP系统,在“boot.ini”文件中去掉参数“/pae”;而对于Vista系统,在管理员命令提示符下输入下面的命令行: BCDEdit /setPAE ForceDisable关于PAE参数和设置的更多信息,可以参考MSDN上的一篇论文“Boot Parameters to Configure DEP andPAE”。
译注:在翻这篇短文的时候,同时还在看着葛优的《没完没了》。阮大伟(傅彪)的“OK、OK、OK”、“我亲死你”让人难忘,韩冬(葛优)最后跟植物人姐姐的告白充满深情。还是那句,痛并快乐着吧。