and*_*bd1 7 java xml dom xerces libxml2
这个问题与最快的XML解析器有些相关, 适用于Java中的小型简单文档, 但有一些更具体的细节.
我正在开发一个需要解析许多(数百万),小(约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-struct dom复制到java-dom不应该花费很长时间.我必须有java-dom - sax在这种情况下不会帮助我.
更新:我刚刚为libxml2写了一个测试,它没有比xerces快得多...授予我的c编码能力非常生疏.
更新我在这里扩展了一个问题: 为什么sax解析比dom解析更快?stax是如何工作的? 并且我愿意放弃dom.
谢谢
首先,你的问题不包含问题。你想知道什么?
我想您正在使用 JNI 将 c-dom 转换为 java-dom。我不知道是否有官方数字,但根据我的经验,c+JNI 通常比直接在 java 中执行要慢。
如果你真的想加快处理速度,请尝试摆脱 dom(为什么需要它?也许我们可以一起想一个解决方案)。如果所有 xml 文件具有相同的架构,请使用您自己的专用数据模型(和 SAX 解析器)。
如果您只使用 xml 的子集(即没有命名空间,只有很少的属性),请考虑编写自己的解析器来直接生成更高效的 java 对象(但我不建议这样做)。
| 归档时间: |
|
| 查看次数: |
3339 次 |
| 最近记录: |