ガベージ コレクションのプログラミング
.NET Framework のガベージ コレクタは、アプリケーションのメモリの割り当ておよび解放を管理します。new 演算子を使ってオブジェクトを生成するたびに、共通言語ランタイムは、マネージ ヒープからオブジェクトにメモリを割り当てます。マネージ ヒープに使用可能なアドレス空間がある限り、ランタイムは新しいオブジェクト用に領域の割り当てを続けます。しかし、メモリの大きさは無限ではありません。最終的には、ガベージ コレクタが、一部のメモリを解放するためにガベージ コレクションを実行する必要があります。コレクションの実行に最適な時期は、ガベージ コレクタの最適化エンジンが、割り当てられるオブジェクトの状況に応じて決定します。コレクションを実行する場合、ガベージ コレクタは、アプリケーションによって使用されなくなったオブジェクトがマネージ ヒープにあるかどうかをチェックし、使われていないオブジェクトのメモリを再利用するために必要な操作を実行します。
このセクションでは、ガベージ コレクタがアプリケーションのマネージ オブジェクトに対して、メモリの割り当てと解放を自動的に管理する方法を説明します。さらに、アプリケーションによって作られるアンマネージ リソースを適切にクリーンアップするための、推奨されるコードのデザイン モデルについても説明します。
このセクションの内容
- メモリ管理に関する開発知識
これまで Visual Basic、C++、COM を使用してきた開発者が、マネージ コードに移行するときに必要とされる知識について説明します。 - Finalize メソッドおよびデストラクタ
Finalize メソッドとデストラクタを使って、ガベージ コレクタがオブジェクトのメモリを再利用する前に、オブジェクトが必要なクリーンアップ操作を実行できるようにする方法を説明します。 - アンマネージ リソースのクリーンアップ
アンマネージ リソースをクリーンアップするために推奨されるコードのデザイン モデルについて説明します。このセクションでは、次の作業のためのコード例が提供されています。 - ガベージ コレクションの強制実行
ガベージ コレクタにコレクションを実行させる方法と時期について説明します。
関連項目
- GC クラス
システム ガベージ コレクタとやり取りする方法を提供します。 - Object.Finalize メソッド
ガベージ コレクタがオブジェクトを再利用する前に、オブジェクトがリソースを解放したり、その他のクリーンアップ操作を実行したりできるようにします。 - IDisposable インターフェイス
リソースのクラスに機能を提供します。 - ガベージ コレクションの技術サンプル
.NET Framework ガベージ コレクタの機能を紹介します。