XML を解析するための最良の方法、つまりパフォーマンス (スペースと時間) の観点から知りたいです。
次の方法で解析を行いました
- 通常の「for each」ループで
- リンク付き
- ドット表記またはラムダ表記。
XML を解析するための最良の方法、つまりパフォーマンス (スペースと時間) の観点から知りたいです。
次の方法で解析を行いました
コードを確認せずに最適化するのは簡単ではありません。ただし、考慮すべき一般的な点が 1 つあります。
Linq-to-XML は DOM ベースのパーサーであり、XML ドキュメント全体をメモリ内のモデルに読み込みます。すべてのクエリは DOM に対して実行されます。大きなドキュメントの場合、DOM の構築はメモリと CPU を集中的に使用する可能性があります。また、Linq-to-XML クエリは、非効率的に記述された場合、同じツリー ノードを複数回ナビゲートする可能性があります。
別の方法として、 XmlReaderなどのシリアル (SAX) パーサーの使用を検討してください。このタイプのパーサーは、ドキュメントのメモリ ベースのモデルを作成せず、前方のみの方法で動作するため、各要素を 1 回だけ読み取る必要があります。
これは大きくて複雑な XML ファイルなので、SAX タイプの XML パーサーを使用して解析してみてください。SAX パーサーは、XML ファイル内のノードごとにイベントを生成するため、ファイル全体をメモリにロードする必要はありません。たとえばアプリケーションで Web 応答として分析し、検証する必要がある小さなファイルの場合は、DOM タイプの XML パーサーを使用することをお勧めします。