快速搜索JAXB对象

时间:2012-03-10 02:43:27

标签: performance dom jaxb benchmarking

在我自己的基准测试和其他Web链接中,与DOM库相比,JAXB更快地解析XML文件。但是,当我尝试从其根对象搜索JAXB对象时,与DOM相比,它的速度令人失望。

对于使用JAXB的搜索,我使用了Apache JXPath库,即JXPathContext类及其getValue()方法。相比之下,对于使用DOM的搜索,我使用了Document类及其getElementsByTagName()方法。我的基准测试显示前者比后者慢得多。

所以这是一个困境,如果我想快速解析XML文件,我想使用JAXB,但如果我想快速搜索节点对象,我必须使用DOM。我想知道是否有一种最佳方法可以同时执行这两种操作,例如,JAXB对象搜索或JAXB树行进比JXPath快。

提前致谢!

1 个答案:

答案 0 :(得分:1)

我在这里错过了明显的事吗?

JAXB编组到Java对象。 Java对象可以携带方法。比如搜索方法。这比依赖一堆内省来嗅出泛型方法的注释要快得多,因为,默认情况下,您可以跳过XML的不相关部分。更好的是:您可以针对特定搜索查询优化数据结构本身(Java对象)。