我正在寻找最新的、内存高效的和高性能的 java XML 解析 API。我需要解析 3 MB 到 5 MB 的 XML 文件。
我对此进行了谷歌搜索,了解到 Sun Java Streaming XML Parser (SJSXP) 和 Woodstox 比 DOM 和 SAX 快得多。两者都使用 StAX API。*这些技术不支持模式验证。
Aalto XML 处理器也实现了 StAX API。
我还没有找到关于这些技术性能的具体发现。
哪一个在内存效率、高性能和易用性方面最好?
我正在寻找最新的、内存高效的和高性能的 java XML 解析 API。我需要解析 3 MB 到 5 MB 的 XML 文件。
我对此进行了谷歌搜索,了解到 Sun Java Streaming XML Parser (SJSXP) 和 Woodstox 比 DOM 和 SAX 快得多。两者都使用 StAX API。*这些技术不支持模式验证。
Aalto XML 处理器也实现了 StAX API。
我还没有找到关于这些技术性能的具体发现。
哪一个在内存效率、高性能和易用性方面最好?
以下是一些可能相关的链接:
性能方面:SJSXP 最慢;它只是 Xerces 内部的重新包装,包装在 Stax API 中。这对性能有一些负面影响(因为它并不是真正为拉解析而设计的)。伍德斯托克斯快一点;小文档和写作要快得多,解析较长文档时差异更小。
到目前为止,Aalto 是这三者中最快的,尤其是在解析方面。它通常比 Woodstox 或 SJSXP 快 50% - 100%。一个缺点是它不处理 DTD(因此不处理外部实体;它处理预定义和字符实体)。
免责声明:我是 Woodstox 和 Aalto 的作者;以及 SJSXP 的贡献者(错误修复)
上述查询的一些有用链接:
http://www.developerfusion.com/article/84523/stax-the-odds-with-woodstox/(2010年 6 月)
http://www.ibm.com/developerworks/opensource/library/os-ag-renegade15/(2007年 7 月)
性能基准测试详细信息:
http://www.xml.com/pub/a/2007/05/09/xml-parser-benchmarks-part-1.html(2007年 5 月)