大家知道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