MSXML 内存不足 -Delphi

MSXML Out Memory -Delphi

当我们尝试转换 XML 大约 160MB 时,

MSXML 因内存不足而失败。

有趣的是它只对特定的服务器失败,我可以在我的电脑上成功地转换同一个文件而没有任何问题。

以下是我尝试过的方法:

我试图通过设置 PE 标志让我的应用程序识别大地址,但感觉这可能不适用于 delphi 5。

注意:我知道 MSXML 使用 DOM 模型并将所有内容拉入内存,但我们无法从该模型中移动并修复此问题。

如有任何建议,我们将不胜感激。 DELPHI 5 男男性接触者XML 6

大地址感知可能是您唯一的希望。使用内置的 Borland 内存管理器,您将无法做到这一点。因此,使用 FastMM 或什至基于平台 HeapAlloc 的替代品会让您克服这个障碍。大地址感知和 RTL/VCL 可能还有其他问题,但我有信心。我用 Delphi 6 成功地完成了所有这些,所以 Delphi 5 不应该是不可能的。

从根本上说,您需要切换到 SAX 解析器。基于 DOM 的解析器不会与 32 位地址 space 和巨大的 XML 文件混合。