Java – XML解析器性能:Sun Java Streaming XML Parser(SJSXP)与Woodstox
我正在寻找最新的,内存效率和高性能的Java XML解析API。 我需要解析3 MB到5 MB的XML文件。
我对此进行了谷歌搜索并了解了Sun Java Streaming XML Parser(SJSXP),Woodstox比DOM和SAX快得多。 两者都使用StAX API。 *这些技术不支持架构validation。
Aalto XML处理器也实现了StAX API。
我没有找到关于这些技术的性能的具体发现。
哪一个在内存高效,高性能和易用性方面最佳?
以下是一些可能相关的链接:
- Stax推动数据绑定: 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中。 这对性能有一些负面影响(因为它不是真正设计用于拉解析)。 Woodstox有点快; 对于小文档和写入来说,快得多,在解析较长的文档时差异较小。
阿尔托是三者中最快的,尤其是解析。 它通常比Woodstox或SJSXP快50%-100%。 一个缺点是它不处理DTD(因此不处理外部实体;它处理预定义和字符实体)。
免责声明:我是Woodstox和Aalto的作者; 以及SJSXP的贡献者(错误修复)