主に Web サービスで構成される Java アプリケーションのプロファイリングを行っています。結果は、ほとんどの時間が XML の変換に費やされていることを示しています。
現在、変換に XStream (バージョン 1.3.1) を使用しています。バージョンアップすると性能は良くなりますか? または、パフォーマンスを向上させるために使用できるものは他にありますか(JAXBなど)?
主に Web サービスで構成される Java アプリケーションのプロファイリングを行っています。結果は、ほとんどの時間が XML の変換に費やされていることを示しています。
現在、変換に XStream (バージョン 1.3.1) を使用しています。バージョンアップすると性能は良くなりますか? または、パフォーマンスを向上させるために使用できるものは他にありますか(JAXBなど)?
最終的には、ユース ケースに適したベンチマークを作成して、ユース ケースに最適な XML バインディング ライブラリを決定する必要があります。最終的な勝者を 1 つ宣言するには要因が多すぎます (つまり、1 つが継承階層に到達するまでは超高速であり、もう 1 つは継承を処理するのが超高速ですが、コレクションでは速度が低下します)。
フレームワーク内では、一般に、StAX またはストリームを処理する方が DOM を処理するよりも高速であるため、コードをこのように配置できれば、より良い結果が得られます。また、バインディング フレームワークは通常、下位レベルのパーサーを利用するため、Woodstox で JAXB を使用するとパフォーマンスが向上する場合があります。
JAXB & パフォーマンス
はJAXBContext
処理されたメタデータを表し、このクラスはスレッド セーフです。一度作成して再利用すると、パフォーマンスが向上します。
マシャラーという用語に忠実であると同時に、パフォーマンスのために特別に設計されたマーシャラーがあります。。。(Xstreamはシリアライザーですが、これは慣例により出力されるため、マッピングファイルなどを使用して生成されるXMLを調整することはできません。XStreamに対して何かがあるわけではありません)。。
パフォーマンスマーシャラーは、数年前にニュージーランドのウェリントンでスタートしました。。。そして、JIBXと呼ばれます。これがウェブサイトです:http://jibx.sourceforge.net/
これは、SpringFrameworkによって明示的にサポートされているマーシャラーの1つです。