16GB がインストールされているにもかかわらず、.NET アプリケーションでメモリ不足例外が発生するのはなぜですか?
この記事では、一般的な問題に対処しますここでは、十分な物理メモリ (16 GB) が利用可能であるにもかかわらず、C# アプリケーションがメモリ不足例外をトリガーします。 3GB メモリを搭載した 32 ビット マシンからアップグレードした後も、このような例外が発生しましたが、問題は引き続き発生し、Windows のメモリ制限の可能性についての推測につながりました。
問題の理解
メモリ不足例外は、アプリケーションのメモリ使用量が利用可能なメモリを超えると発生します。この場合、例外は 1.3 GB のしきい値で発生します。これは、一般的な単一オブジェクトのメモリ制限である 2 GB よりも小さいです。これは、問題が別の場所にあることを示唆しています。
ターゲット アーキテクチャの影響
この問題を解決する鍵は、コンパイルされたコードのターゲット アーキテクチャにあります。 32 ビット アーキテクチャと 64 ビット アーキテクチャには、アドレス指定可能なメモリ空間の点で大きな違いがあることに注意することが重要です。
問題の解決
拡張メモリの利点を活用するには64 ビット システムの機能を最大限に活用するには、64 ビット アーキテクチャをターゲットにしたコードをコンパイルすることが重要です。これにより、アプリケーションは 2GB 制限を超えてメモリを割り当てることができ、メモリ不足例外が発生しなくなります。
追加の考慮事項
メモリ不足例外について繰り返し説明することが重要です。 CLR の単一のコレクション (List
以上が16GB RAM にもかかわらず、64 ビット .NET アプリが OutOfMemoryException をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。