忙しい.NETアプリケーションからOutOfMemory例外を受け取ることがある
これに対する答えは複雑すぎて答えに収まりません。主題の完全な扱いについては、「。NETアプリケーションのパフォーマンスのチューニング」を参照してください。
これは、非常に単純化された(しかし、かなり良い)ブルーノジュヒエの要約です。
さらに、.NETランタイムでは、最大2 GBにできません。ガベージコレクターはライブオブジェクトをコピーすることで機能するため、コピーを実行するにはかなりの容量が必要です。
編集:
これが私の説明の試みです...
x86上のASP.NETワーカープロセス(ワーカーによって報告される)の最大ワーカープロセスメモリサイズがどのくらいか疑問に思っている場合、答えは「依存する」です。
Javaや.NETなどのあらゆる種類のマネージコードでは、ポインターを処理する必要がないため、プログラマーはメモリの細かい制御を諦めます。プログラムが実行されると、ヒープとスタックはガベージコレクターによって定期的にクリーンアップされます。
特にASP.NETに関しては、ガベージコレクターはWebサイトと同じワーカープロセス内で実行されます。GCはそれ自体のメモリを消費します。どのくらいのメモリは、完全にあなたのアプリケーションのコードが書かれているかの関数です。1つのアプリが1.8GBのメモリを使用できる一方で、別のアプリは500MBで窒息する可能性があります。理由を理解するには、特定のアプリケーションのプロファイルを作成する必要があります。