2012-01-23 7 views
0

xmlを入力とし、別のxmlを出力として持つケースがあります。 JAXBを介してXSLとアンマーシャリングのマーシャリングを使用するかどうかを選択できます。 パフォーマンスは賢明ですが、実際の違いはありますか?変換のパフォーマンスXML> XSL> XMLとXML> JAXB> XML

+0

重要な決定は、XSLスタイルシートを 'Template'としてコンパイルしてキャッシュできるかどうかです。別の質問は、XSLTインタプリタ(Xalanなど)とコンパイラ(XSLTCなど)のどちらを使用するかです。毎回XSLスタイルシートを解析する必要がある場合は、かなり長い時間を要します。 XSLTコンパイラを使用し、結果をキャッシュすることができたら、私はXSLTに行くだろう...しかし、私はそれに関するメトリックを持っていない。 – flyx

答えて

3

第1に、プログラマのパフォーマンスは、通常、マシンのパフォーマンスよりもはるかに重要です。優れた高速サーバーは、1日にプログラマーを雇うよりもコストがかかりません。あなたは正しい質問をしていますか?

第2に、変換が単純であれば、どちらの場合も、解析コストとシリアライゼーションコストが支配的になり、2つのケースでこれらが異なる必要はありません。変換がより複雑な場合は、コードの作成者のスキルに応じてパフォーマンスが変化するため、プログラミングの質問に再び戻ります。

JAXBを使用してXSLTを使用することの実際の違いは、XSLTソリューションのほうがコードの行数が少なくなり、スキーマの変更に対して敏感ではないということです。

+0

同じプログラマーでは、2つの違いはあまりありません。 – redben

+0

@redben:プログラマーが1人しかいない(そして彼がXSLTを知らない、あるいは好きではない)場合、あなたの質問は意味を失います。 XSLTは特にXML変換用に設計された言語なので、他の言語を使用する場合に比べてこの作業には明確な利点があります。つまり、他のすべての条件は*タスクにXSLTを優先するのが妥当です。パフォーマンスに関しては、プログラミング言語の選択よりも使用されるアルゴリズムに大きく依存することが示されています.Jon Bentley Donald Knutの言葉を引用すると、「早期最適化はすべての悪の根源です」 –