さまざまな XML ツール (パーサー、バリデーター、XPath 式エバリュエーターなど) のパフォーマンスが、入力ドキュメントのサイズと複雑さによってどのように影響を受けるかを知る必要があります。CPU 時間とメモリ使用量がどのように影響を受けるかを文書化したリソースはありますか? ドキュメントのサイズはバイトですか? ノード数?また、その関係は線形、多項式、またはそれより悪いものですか?
アップデート
IEEE Computer Magazine vol 41 nr 9、2008 年 9 月の記事で、著者は 4 つの一般的な XML 解析モデル (DOM、SAX、StAX、および VTD) を調査しています。彼らはいくつかの非常に基本的なパフォーマンス テストを実行し、入力ファイルのサイズが 1 ~ 15 KB から 1 ~ 15 MB に、または約 1000 倍大きくなると、DOM パーサーのスループットが半分になることを示しています。他のモデルのスループットには大きな影響はありません。
残念ながら、ノード数/サイズの関数としてのスループット/メモリ使用量など、より詳細な調査は行われませんでした。
記事はこちら。
アップデート
この問題の正式な扱いを見つけることができませんでした。参考までに、XML ドキュメント内のノード数をドキュメントのサイズ (バイト単位) の関数として測定する実験をいくつか行いました。私は倉庫管理システムに取り組んでおり、XML ドキュメントは典型的な倉庫ドキュメント (事前出荷通知など) です。
以下のグラフは、バイト単位のサイズとノード数の関係を示しています (これは、DOM モデルでのドキュメントのメモリ フットプリントに比例するはずです)。さまざまな色は、さまざまな種類のドキュメントに対応しています。スケールは log/log です。黒い線は青い点に最適です。興味深いことに、すべての種類のドキュメントで、バイト サイズとノード サイズの関係は直線的ですが、比例係数は大きく異なる可能性があります。
(ソース: flickr.com )