C# 32位程序申請大內存


  最近在編寫測試一個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、重啟電腦。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM