Delphi / FastMM 能否解决与操作系统规范相同的问题? http://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx
我刚有一位客户问我,我的软件是否可以访问 1 TB(Windows 2008 服务器),这让我很疑惑。
Delphi / FastMM 能否解决与操作系统规范相同的问题? http://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx
我刚有一位客户问我,我的软件是否可以访问 1 TB(Windows 2008 服务器),这让我很疑惑。
Delphi 发出带有 64 位指针的代码。这样的指针能够寻址 2 64字节,即超过 1TB。操作系统的虚拟内存设计和/或许可会施加任何限制,而 Delphi 编译器对这些限制一无所知。在运行时,系统会强制执行内存限制,您的代码将受到这些限制。但是 Delphi 本身没有寻址限制。
同样,FastMM 没有 1TB 限制的概念。当系统报告内存已耗尽时,FastMM 会报告内存不足错误。
Delphi / FastMM 能否解决与操作系统规范相同的问题?
是的。
一边。使用 Borland 内存管理器的旧 32 位 Delphi 版本与 2GB-4GB 范围内的地址不兼容。如果在标记为大地址感知的进程中执行此类 Delphi 代码,则会出现此问题。
我提到这一点是为了说明您的开发工具如何对您施加超出操作系统的限制。现在,64 位 Delphi 没有此类问题,但您提出的问题非常有效。