相关疑难解决方法(0)

为什么在64位Windows中运行时2 GB内存限制?

我是开发Delphi应用程序的团队的成员.内存需求量很大.500 MB是正常的,但在某些情况下它会出现内存异常.在这种情况下分配的内存通常在1000 - 1700 MB之间.

我们当然需要64位编译器,但现在不会发生(如果它发生,我们也必须转换为unicode,但这是另一个故事......).

我的问题是为什么在64位环境中运行时每个进程有2 GB的内存限制.指针是32位,所以我认为4 GB是正确的限制.我使用Delphi 2007.

编辑: 所以如果我使用以下方法在Delphi中设置IMAGE_FILE_LARGE_ADDRESS_AWARE标志:

{$SetPeFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}
Run Code Online (Sandbox Code Playgroud)

并在Windows Server 2003 x64上运行生成的Exe文件,然后该应用程序可以处理4 GB?

  • 我应该在boot.ini中设置/ 3GB开关吗?
  • 我们尝试了这个但是在32位Windows Server 2003上它似乎限制了Windows资源.在日志中使用GDIError的"Out of memory"有更多例外.但是在64位操作系统中运行时可能会消失吗?

delphi win64 delphi-2007

31
推荐指数
3
解决办法
1万
查看次数

标签 统计

delphi ×1

delphi-2007 ×1

win64 ×1