大きなリストを構築してメモリに保持する必要がありますが、構築中にOutOfMemoryExceptionがスローされます。リソースモニターによれば、私はまだ1GBのメモリを利用できます。私はthis KB articleがこの問題に対処しているのを見つけましたが、フレームワーク1.1 SP1(3.5 sp1を使用しています)で修正されているはずです。OutOfMemoryExceptionはメモリがまだ利用可能な間にスローされます
舞台裏で何が起きているのか誰かが気をつけてもらえますか? .netフレームワークは、1つのプロセス(32ビットシステム上)で使用できるメモリの量を制限していますか?もしそうなら、私は理由を知ることができますが、アプリケーションが1.6GBしか使用しておらず、まだシステムに〜1GB残っているということは意味がありません。
編集 - ここに尋ねた人のためには、いくつかのより詳細な情報は以下のとおりです。
私がリストを持っている(ええ、私は何か他のものを使用することができますが、私はちょうど今試作しています。)、私が発生Guid.NewGuid()。ToString()を実行してランダムな文字列を作成し、それをリストにスローします。私がしようとしているのは、私がそれに合うような数のアイテムを含むリストを生成し、特定のものを探すさまざまな方法をテストすることです。私の最初の推測では、いくつかの断片化が進行中ですが、私は以下のコードを除いてすべてを落としました。私はこの小さなスニペットが多くの断片化を作り出すとは思わないが、おそらく間違っている。
List<string> blah = new List<string>();
for (int i = 0; i < 50000000; i++)
{
blah.Add(Guid.NewGuid().ToString());
}
あなたはOutOfMemoryExceptionを打つ場所のコードスニペットを提供できますか? –
どのデータ構造を使用していますか?リスト? –
RichardOD