最近测试一个32位程序总是在1.2G左右内存时崩溃,怀疑是内存申请失败,本身32位程序只能申请到2GB内存,经过在网上找的各种方法和测试,如下方法可行,能申请到4GB内存。
1、管理员模式下运行CMD,输入:BCDEdit /set PAE forceenable Windows
这里的BCDEdit是关于命令行的启动配置编辑器。使用上面的命令,你能启用物理地址扩展(PAE),让支持的内存大于4GB
2、管理员模式下运行CMD,输入:bcdedit /set increaseuserva 3072
来使得windows把2G以上的内存也分配给应用程序!
3、重启电脑。
4、重新编译程序。
5、在开始-》程序-》Visual Studio2010-》中找到“Visual Studio 命令提示(2010)”打开已设置VS环境变量的CMD窗口,在命令行下执行:
editbin /LARGEADDRESSAWARE 你的程序名.exe
如果要恢复2GB模式,则使用如下命令删除
1、BCDEdit /deletevalues PAE
2、BCDEdit /deletevalues increaseuserva
3、重启电脑。
如果使用vs2010(其他编译器没测试),可在“工程属性-》链接器-》系统-》启用大地址”中选择“是”,可直接启用4GB模式。