ホームページ > バックエンド開発 > C++ > 16 GB の RAM があるにもかかわらず、64 ビット .NET アプリが OutOfMemoryException をスローするのはなぜですか?

16 GB の RAM があるにもかかわらず、64 ビット .NET アプリが OutOfMemoryException をスローするのはなぜですか?

Linda Hamilton
リリース: 2025-01-04 01:39:39
オリジナル
806 人が閲覧しました

Why Does My 64-Bit .NET App Throw an OutOfMemoryException Despite Having 16GB of RAM?

.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 など) が 2GB のメモリを割り当てる場合にも OutOfMemoryException が発生する可能性があることに注意することが重要です。 32 ビットと 64 ビットの両方のアーキテクチャ上のメモリ。

以上が16 GB の RAM があるにもかかわらず、64 ビット .NET アプリが OutOfMemoryException をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート