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

 

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