这个问题与Java 中用于小型、简单文档的最快 XML 解析器有些相关, 但有更多细节。
我正在开发一个需要解析许多(数百万个)小型(大约 300k)xml 文档的应用程序。当前的实现使用 xerces-j,在 1.5 GHz 机器上每个 xml 文档大约需要 2.5 ms。我想提高这个性能。我偶然发现了这篇文章
http://www.xml.com/pub/a/2007/05/16/xml-parser-benchmarks-part-2.html
声称 libxml2 的解析速度比任何 java 解析器都要快一个数量级。我不确定我是否相信,但它引起了我的注意。 有没有人尝试过使用 jvm 中的 libxml2?如果是这样,它是否比 java dom 解析(xerces)更快? 我想我仍然需要我的 java dom 结构,但我猜从 c 结构的 dom 复制到 java-dom 应该不会花很长时间。我必须有 java-dom - 在这种情况下 sax 对我没有帮助。
更新:我刚刚为 libxml2 编写了一个测试,它并没有比 xerces 快......因为我的 c 编码能力非常生疏。
更新我在这里稍微扩大了问题: 为什么 sax 解析比 dom 解析更快?以及 stax 是如何工作的? 并对放弃 dom 的可能性持开放态度。
谢谢