xml解析にJAXBを使用していますが、パフォーマンスやメモリの使用に関する問題はありますか?JAXBでメモリ使用の問題がありますか?
答えて
注意すべきことは、JAXBContext.newInstance()
が非常に遅い操作であることです。これは、多くのリフレクションとクラス生成が行われ、duffymoで言及されたパーマスペースの問題につながります。ありがたいことに、JAXBContext
はスレッドセーフなので、cache one away and reuse itには問題ありません。さもなければ、JAXBのメモリ使用量は完全なDOMよりも上回っているかもしれないし、SAXより大きいと言えるのは間違いないと思います。
非常に大きいドキュメントの場合は、process them in chunks with JAXBにすることができます。 JAXB RI distributionには、JAXBによるストリーミングの例が含まれています。
Xerces SAXParser
のようなJavaのより単純なXML処理メカニズムとは対照的に、JAXBではパフォーマンスがかなり悪くなることがあります。
JAXBは、DOMベースの解析と同じ基本的な問題を抱えています。これは、一般に、データデータ構造全体が同時にメモリに保持されるということです。つまり、一般的にはDOM API(XOMを除いて可能性があります)よりもメモリが不足しています。
これは、JAXBを使用して、必要に応じてストリーム指向の方法で大きなドキュメントのフラグメントを読み取る方法があることを示しています。しかし、それはかなりエキゾチックな使い方です。
JAXBには、リフレクションを使用して、実行時にパーマスペースに追加されるクラスを作成するという追加の問題があります。 OutOfMemoryErrorが発生する可能性があります。
多くの関連する回答(nostopoverflow.com/a/33431431/122727)noOptimizeについて。 – kubanczyk
あなたは確かにthis articleが は、JVM引数の下に追加
をこれらの問題を回避に役立つかもしれ技術を結合新しいデータを説明するのに役立つことがあり、過度のオブジェクト作成/破壊に結合するJava XMLデータのパフォーマンスとメモリの問題に遭遇することがあり
-Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true
- 1. メモリに問題がありますか?
- 2. マルチスレッドカールアプリケーションにメモリ割り当ての問題があります
- 3. Qt、ペイントイメージ、メモリに問題がありますか?
- 4. ビットマップとメモリに問題がありますか?
- 5. C言語でメモリに問題があります*
- 6. camerainfoとcombobox.currentText()でメモリに問題があります
- 7. observablecollectionメモリ使用の問題
- 8. Ext.jsのメモリに関する問題があります
- 9. RecyclerView.Adapterのアイテムが多数あります - メモリの問題
- 10. 再帰構造のベクトルにメモリの問題があります
- 11. メモリの読み込みに問題があります
- 12. Xcode:UIScrollView画像ギャラリー、メモリの問題があります
- 13. Niceformsの使用に問題がありますか?
- 14. JAXBアンマーシャリング問題
- 15. クッキーを使用するブラックベリーウェブアプリケーションに問題がありますか?
- 16. ツリー以外のXMLパーサーを使用すると、なぜメモリに問題がありますか? (XMLパーサー)
- 17. ファイルをhttpcomponentsでポストします。メモリに問題があります
- 18. メモリの管理に問題がありますか? "EXC_BAD_ACCESS"エラーを受け取る
- 19. 多くのファイルを読むとメモリに問題がありますか?
- 20. JAXBでXml解析問題
- 21. 問題があります
- 22. glDrawPixelsの使用に問題があります
- 23. コマンドラインパラメータの使用に問題があります
- 24. git pushの使用に問題があります
- 25. 「UIView animateWithDuration:......」の使用に問題があります
- 26. PowerShell - Countメソッドの使用に問題があります
- 27. jqueryとfirebugの使用に問題があります
- 28. メモリ使用量に関する問題
- 29. CSSで子セレクタ(>)を使用するのに問題がありますか?
- 30. C++ 'C String'実装にメモリ割り当ての問題があります
あなたはパーサのようなSAXとJAXBを使用して説明することができます(若干のパフォーマンスへの影響を持つ)この問題を解決することができますか? –
SAX(旧式の処理モデル)を使用する必要はなく、STaXまたはVTD-XML –
@Jimmyを使用することもできます。https://jaxb.dev.java.net/guide/Dealing_with_large_documents.html#Processing%5Fa %5F文書%5Fby%5Fchunk – skaffman