利用Visual Studio為X86程序開啟大內存的方法


1.X86程序與X64程序的區別
X86程序的內存使用限制
在Windows32位操作系統中,每個進程所能使用的最大空間(包含操作系統使用的內核模式地址空間)為4G,在通常情況下,操作系統會分配2GB內存給進程使用,另外2G內存,另外2G內存為操作系統保留。
何謂大內存
所謂“大內存”,就是指允許X86進程允許使用超過2G的內存空間。這里的內存空間不光是進程動態申請的,還包括操作系統自動為進程分配的。一般情況下,進程當前使用的內存空間大小,可以通過操作系統計數器來查看。
從目前的個人的測試情況來看,開啟大內存后的X86進程最多能用3.7G左右的內存空間,當然該數值是個估計值,和硬件、操作系統及程序本身都有關系。
大內存的使用條件
1.操作系統應該是64位Windows操作系統;
2.開啟大內存的程序應為Visual Studio開發的;
3.程序應為X86程序,X64程序本身就沒有2G內存的限制。
2.什么時候需要開啟大內存
大內存的適用情況
在軟件開發中,隨着處理路數和數據量的加大,內存消耗的越來越多。為了解決這種問題,最好的方法是將編譯平台從X86切換到X64。然后現實中,並不是所有的X86程序都能夠直接切換到X64位的,以下就是幾種常見的情況:
1.目前的維護的較早的X86程序,公司沒有過多資源來將整個軟件切換到X64平台;並且原有的X86版本是正常運行的,現在僅僅是數據量或者稍微增加,但是增加后的進程內存還在3.7G以下;
2.原有的X86程序用了較多的第三方庫,而部分第三方庫沒有X64版本的庫文件。
內存不足的先兆
1.對於C#程序來說,內存不足一般會引發異常,常見的異常原因有“內存不足”或者“圖片無法加載“;
2.對於C++程序,一般是內存申請操作失敗。
3.開啟大內存的方法

由於Visual Studio版本較多,個人精力和資源有限,僅針對VS2008和VS2015進行了測試。下面針對VS2008和VS2015做下說明。假定要開啟大內存的程序執行文件路徑為: D:\Test.exe
VS2008開啟大內存的方法
1.開啟方法
(1)利用管理員身份運行”Visual Studio 2008 x64 兼容工具命令提示”程序;
(2)輸入命令:editbin /LARGEADDRESSAWARE D:\Test.exe
2.檢查是否開啟成功
(1)利用管理員身份運行”Visual Studio 2008 x64 兼容工具命令提示”程序;
(2)輸入命令:dumpbin /headers D:\Test.exe
VS2015開啟大內存的方法
1.開啟方法
(1)利用管理員身份運行”VS2015 x64 x86兼容工具命令提示符”程序;
(2)輸入命令:editbin /LARGEADDRESSAWARE D:\Test.exe
2.檢查是否開啟成功
(1)利用管理員身份運行”VS2015 x64 x86兼容工具命令提示符”程序;
(2)輸入命令:dumpbin /headers D:\Test.exe
注意
1.內存開啟成功的標志:在查看結果中的”FILE HEADER VALUES”段落中,會出現”Application can handle large (>2G) addresses”字樣;
2.當程序重新編譯后,原有的大內存信息會丟失,所有需要重新開啟;
3.在程序中,只需要針對執行文件開啟大內存即可,其他的文件非執行文件不需要再開啟。
————————————————


免責聲明!

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



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