最近在編寫測試一個32位程序時(由於程序維護,並且使用的以前32位的dll文件,所以只能編譯成32位),在程序運行內存占用到1.7G左右時總是出現程序崩潰。
后來添加日志發現是內存溢出(OutOfMemoryException);本身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 Studio2012-》中找到“Visual Studio 命令提示(2012)”打開已設置VS環境變量的CMD窗口,在命令行下執行:
editbin /LARGEADDRESSAWARE 你的程序名.exe
如果要恢復2GB模式,則使用如下命令刪除
1、BCDEdit /deletevalues PAE
2、BCDEdit /deletevalues increaseuserva
3、重啟電腦。