起因
在開發(fā)過程中,由于某些COM組件只能在32位程序下運(yùn)行,程序不得不在X86平臺下生成。而X86的32位程序默認(rèn)內(nèi)存大小被限制在2G。由于程序中可能存在大數(shù)量處理,期間對象若沒有及時釋放或則回收,內(nèi)存占用達(dá)到了1.2G左右,就會引發(fā)異?!皟?nèi)存溢出”。
環(huán)境:Visual Studio 2022
問題復(fù)現(xiàn)
解決方案
1、在VS中右鍵【啟動項目】的【屬性】,在【生成事件】中申請大內(nèi)存
2、使用editbin.exe申請大內(nèi)存(注意editbin這個exe需要vs安裝c++相關(guān)組件)。安裝好后一般在如下目錄中:C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.30.30705\bin\Hostx86\x86
在命令行中輸入如下命令:
CALL "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
editbin /largeaddressaware "$(TargetPath)"
3、再次運(yùn)行,可見已成功突破2G內(nèi)存限制
查看exe是否支持大內(nèi)存
在命令窗口使用dumpbin查看。
命令:dumpbin /headers xxx.exe
運(yùn)行命令后可見,藍(lán)色框內(nèi),程序已經(jīng)突破2G內(nèi)存限制。
未突破2G內(nèi)存限制程序顯示:文章來源:http://www.zghlxwxcb.cn/news/detail-455785.html
天地不過是飄搖的逆旅,晝夜不過是光陰的門戶。 ——《花鏡》文章來源地址http://www.zghlxwxcb.cn/news/detail-455785.html
到了這里,關(guān)于c# 32位程序突破2G內(nèi)存限制的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!