我正在寻找最新的,内存效率和高性能的Java XML解析API . 我需要解析3 MB到5 MB的XML文件 .
我对此进行了谷歌搜索并了解了Sun Java Streaming XML Parser(SJSXP),而Woodstox比DOM和SAX快得多 . 两者都使用StAX API . *这些技术不支持架构验证 .
Aalto XML处理器也实现了StAX API .
我没有找到关于这些技术的性能的具体发现 .
哪一个在内存高效,高性能和易用性方面最佳?
以下是一些可能相关的链接:
Stax impls for data-binding: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的贡献者(错误修复)
以上查询的一些有用链接:
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月)
2 回答
以下是一些可能相关的链接:
Stax impls for data-binding: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的贡献者(错误修复)
以上查询的一些有用链接:
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月)