32Bit程序使用超過2G內存的方法

大家知道32Bit程序一般只能使用2G內存,但是我們往往需要使用更大內存,而有不想將程序改成64Bit。
這時候有什麼辦法突破系統限制呢?說不多說,直接上代碼:
Delphi環境下,只需要在主程序之前加這麼一句編譯指令:

{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}

親測單進程可以使用高達3.8G內存。

別忘了,添加Windwos.pas,否則編譯不通過。

爲什麼只能使用4G呢?

這是因爲64位系統下32位進程的內存尋址上限是4GB。

如果是32位系統,另外還需開啓系統的3GB switch。方法如下:

開cmd輸命令:

bcdedit /set IncreaseUserVa 3072

然後重啓

但是這樣32位win的內核只能分配到1G的內存,某些驅動可能會有問題。

關閉3GB switch:

bcdedit /deletevalue IncreaseUserVa

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章