これはおそらく、 .NET コレクションとラージ オブジェクト ヒープ (LOH)に沿ったものです。
.Net では、xml が base64 に変換されるときに ~200KB のテキスト ドキュメントを作成する文字列を含む XmlDocument を読み込んでいます。ポイントは、文字列を大きなオブジェクト ヒープに割り当てる必要があることです。ここでの比較を読むと、XmlReader が文字列を読み取る最も効率的な方法であることがわかりますが、XmlDocument はおそらく、より多くの機能 (xpath) を使用して、より簡単に読み取ることができます。
私の XML の各ノードは、かなり小さな文字列である必要があり、大きなオブジェクト ヒープにはほど遠いものです。Lutz .Net Reflector を使用すると、XmlDocument が内部的にリンクされたノードを使用しているように見えます。
最後に、私の質問: ~200 KB (>85000 バイト) を節約するこの文字列をロードすると、XmlDocument の使用時にさらに別のオブジェクトが LOH に発生します。ヒープが断片化して OOM エラーが発生することが少し心配です。それとも、XmlDocument がたまたま (少なくとも私が求めているデータの場合)、マネージ ヒープに多くのオブジェクトを作成するのでしょうか?