gpt4 book ai didi

delphi - Delphi 可用的最快的 XML 解析器是什么?

转载 作者:行者123 更新时间:2023-12-03 14:33:00 25 4
gpt4 key购买 nike

我们有相当大的 XML 字符串,目前使用 MSXML2 进行解析

我刚刚尝试使用 MSXML6 希望提高速度,但一无所获!

我们当前创建了很多 DOM 文档,我想不断与 MSXML2/6 dll 交互可能会产生一些开销

有人知道 Delphi 有更好/更快的 XML 组件吗?

如果有人可以提出替代方案,并且速度更快,我们会考虑将其集成,但这将需要大量工作,因此希望该结构不会与 MSXML 使用的结构有太大不同

我们使用的是 Delphi 2010

保罗

最佳答案

前段时间我必须将record序列化为XML格式;例如:

 TTest = record
a : integer;
b : real;
end;

    <Data>        <a type="tkInteger">value</a>        <b type="tkFloat">value</b>    </Data>

我使用 RTTI 递归地浏览记录字段并将值存储到 XML。我尝试过一些 XML 解析器。我不需要 DOM 模型来创建 xml,但需要它来加载它。

XML 包含大约310k 个节点(10-15MBytes);结果如下表所示,有 6 列,时间以秒为单位;
1 - 创建节点和写入值的时间
2 - SaveToFile();
3 = 1 + 2
4 - LoadFromFile();
5 - 浏览节点并读取值
6 = 4 + 5
enter image description here

MSXML/Xerces/ADOM - 是 TXMLDocument (DOMVendor) 的不同供应商
JanXML 不适用于 unicode;我修复了一些错误,并保存了 XML,但加载会导致 AV(或堆栈溢出,我不记得了);
manual - 表示使用 TStringStream 手动编写 XML。

我使用的是Delphi2010、Win7x32、Q8200 CPU/2.3GHz、4Gb RAM。

更新:您可以在此处下载此测试的源代码(使用 RTTI 将序列化记录为 XML)http://blog.karelia.pro/teran/files/2012/03/XMLTest.zip包括所有解析器(Omni、Native、Jan)(现在 XML 中的节点数约为 270k),抱歉代码中没有注释。

关于delphi - Delphi 可用的最快的 XML 解析器是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9488573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com