3

XML を解析するための最良の方法、つまりパフォーマンス (スペースと時間) の観点から知りたいです。

次の方法で解析を行いました

  • 通常の「for each」ループで
  • リンク付き
  • ドット表記またはラムダ表記。
4

2 に答える 2

2

コードを確認せずに最適化するのは簡単ではありません。ただし、考慮すべき一般的な点が 1 つあります。

Linq-to-XML は DOM ベースのパーサーであり、XML ドキュメント全体をメモリ内のモデルに読み込みます。すべてのクエリは DOM に対して実行されます。大きなドキュメントの場合、DOM の構築はメモリと CPU を集中的に使用する可能性があります。また、Linq-to-XML クエリは、非効率的に記述された場合、同じツリー ノードを複数回ナビゲートする可能性があります。

別の方法として、 XmlReaderなどのシリアル (SAX) パーサーの使用を検討してください。このタイプのパーサーは、ドキュメントのメモリ ベースのモデルを作成せず、前方のみの方法で動作するため、各要素を 1 回だけ読み取る必要があります。

于 2012-04-18T13:10:57.353 に答える
0

これは大きくて複雑な XML ファイルなので、SAX タイプの XML パーサーを使用して解析してみてください。SAX パーサーは、XML ファイル内のノードごとにイベントを生成するため、ファイル全体をメモリにロードする必要はありません。たとえばアプリケーションで Web 応答として分析し、検証する必要がある小さなファイルの場合は、DOM タイプの XML パーサーを使用することをお勧めします。

于 2012-04-18T13:10:18.197 に答える