Java-XML解析器性能:Sun Java Streaming XML parser(SJSXP)vs Woodsto



我正在寻找最新的、节省内存和高性能的javaXML解析API。我需要解析3 MB到5 MB的XML文件。

我在谷歌上搜索了一下,了解了Sun Java Streaming XML Parser(SJSXP),Woodstox比DOM&萨克斯。两者都在使用StAX API。*这些技术不支持模式验证。

Aalto XML处理器还实现了StAX API。

我还没有发现关于这些技术性能的具体发现。

在内存高效、高性能和易用性方面,哪一个最好?

以下是一些可能相关的链接:

  • 用于数据绑定的Stax impls:http://technotes.blogs.sapo.pt/1708.html
  • 有效使用Woodstox:http://www.cowtowncoder.com/blog/archives/2006/06/entry_2.html
  • 使用Woodstox加速XSLT:http://www.cowtowncoder.com/blog/archives/2009/04/entry_235.html

性能方面:SJSXP最慢;它只是Xerces内部的一个重新包装,包装在Stax API中。这对性能有一些负面影响(因为它并不是为pull解析而设计的)。Woodstox稍微快一点;对于小文档和写作速度要快得多,解析长文档时差异更小。

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月)

最新更新