一.為什么開啟大內(nèi)存
windows32應(yīng)用程序每個進程內(nèi)存空間為4G窟勃,其中2G操作系統(tǒng)默認分配給應(yīng)用程序,稱為用戶模式虛擬地址空間刁笙,剩下2G默認位操作系統(tǒng)保留,稱為內(nèi)核模式地址空間。但是當應(yīng)用程序使用大量內(nèi)存空間后佳励,當新增內(nèi)存不足時, 程序就會崩潰蛆挫,因此如果32位應(yīng)用使用大量內(nèi)存赃承,可能達到臨界線的,應(yīng)該開啟大內(nèi)存模式悴侵。
二.開啟方法
1.vs編譯選項開啟
2.選用vs的editbin工具\
打開vs對應(yīng)版本的cmd命令窗
命令是:
editbin /largeaddressaware xx.exe
xx.exe可以是相對路徑瞧剖,也可以是絕對路徑。
三.驗證方法
打開vs對應(yīng)版本的cmd命令窗
dumpbin /headers xx.exe | more
出現(xiàn)下圖標紅框的話可免,就是開啟了大內(nèi)存模式
四.開啟大內(nèi)存效果
對于 32 位操作系統(tǒng)抓于,程序依然只能使用 2GB 內(nèi)存,除非開啟了 '/3GB'開關(guān)浇借。開啟后捉撮,應(yīng)用程序的用戶態(tài)將可以使用 3GB 內(nèi)存,但內(nèi)核態(tài)將只能使用 1GB 內(nèi)存逮刨。
對于 64 位操作系統(tǒng)呕缭,Windows 將會把4GB尋址空間全部分配給應(yīng)用程序,因為系統(tǒng)自己已經(jīng)有更多的內(nèi)存尋址空間可以使用了修己,沒必要使用 32 位應(yīng)用程序的尋址空間恢总。
參考博客:
https://www.cnblogs.com/walterlv/p/10326596.html