.NET での OutOfMemoryException: 64 ビット コンピューターで 1.3 GB を超えるメモリ使用量
64 ビット コンピューターに 16 GB の RAM がインストールされているにもかかわらず、アプリケーションは約消費した後に OutOfMemory 例外に遭遇しますメモリは1.3GB。サイズが 2GB を超えるオブジェクトが 1 つも存在しないにもかかわらず、この問題は解決しません。
原因はコンパイル ターゲットのアーキテクチャにあります。デフォルトでは、.NET アプリケーションは 32 ビット アーキテクチャ用にコンパイルされ、オブジェクトごとのメモリ使用量に 2 GB の制限が課されます。 64 ビット マシンでも、32 ビット用にコンパイルすると、メモリ使用量が同程度に制限されます。
解決策:
問題を解決するには、アプリケーションをターゲットとして再コンパイルします。 64 ビット アーキテクチャ。これにより、アプリケーションはシステムで利用可能な 16 GB の RAM をすべて利用できるようになります。再コンパイル後、バイナリは 64 ビット マシン上でのみ実行されます。
さらに、CLR 内の単一のコレクション (List
以上が16 GB の RAM があるにもかかわらず、64 ビット .NET アプリが OutOfMemoryException をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。