2012-03-10 22 views
0

私自身のベンチマークや他のWebリンクでも、JAXBはDOMライブラリと比較してXMLファイルの解析が高速です。しかし、ルートオブジェクトからJAXBオブジェクトを検索しようとすると、DOMに比べてスピードが失望しています。JAXBオブジェクトの高速検索

JAXBでの検索では、Apache JXPathライブラリ、つまりJXPathContextクラスとそのgetValue()メソッドを使用しました。 DOMを使った検索では、DocumentクラスとgetElementsByTagName()メソッドを使いました。私のベンチマークは、前者が後者よりずっと遅いことを示しています。

XMLファイルを高速に解析したい場合はJAXBを使いますが、ノードオブジェクトをすばやく検索するにはDOMを使用する必要があります。 JAXBオブジェクト検索やJAXBツリーのJXPathよりも高速なメソッドのように、両方を行う最適な方法があるかどうかは疑問です。

ありがとうございます!

答えて

1

私はここではっきりしないのですか?

JAXB Javaオブジェクトへのマーシャリング。 Javaオブジェクトはメソッドを持つことができます。検索方法など。これは、イントロスペクションのヒープに依存してアノテーションを一般メソッドに盗聴する必要があるよりもはるかに高速です。デフォルトでは、XMLの無関係な部分をスキップすることができます。さらに優れています:特定の検索クエリに対してデータ構造そのもの(Javaオブジェクト)を最適化できます。

+0

良い点をありがとう。私は確かに、ルートJavaクラスに専用の検索メソッドを追加することができますが、DOMライブラリと同じくらいうまくはありません。 JAXBでオブジェクトを検索する一般的な方法があるかどうか、似たようなパフォーマンスを持つDOM Documentクラス、または少なくともJXPathライブラリよりも高速であるかどうか疑問に思っていました。 –