1. 程式人生 > >關於VS編譯的程式記憶體分配只能用1.5~2G上限的優化方案

關於VS編譯的程式記憶體分配只能用1.5~2G上限的優化方案

遇到的問題是這樣的: 電腦記憶體32G,VS2012編譯的一個程式,在程式執行過程中,一旦程式的記憶體使用達到1.5G,就會丟擲記憶體溢位(outofmomery)異常,然後程式就卡主了!已確定程式邏輯沒有bug。就是因為要處理的資料量太大,單純的消耗記憶體。可是也就才1.5G吖,還遠遠不到系統的32G。 然後去知乎求大神解答,終於找到解決方案,在這裡備忘一下: 程式只能用1.5~2G記憶體,這是32位(x86)模式下程式所能請求記憶體的上限,如果想要使用更多的記憶體,更改一下專案CPU啟動的模式就好了,改成x64就OK。不過要注意程式內是否使用了只能在32位下執行的模組。比如雖然程式是x64的,但是裡面用到了一個x32的模組(dll),如果在x64的模式下執行就還會丟擲記憶體溢位異常的。