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