更新 : 2007 年 11 月
ガベージ コレクションのジェネレーションを識別します。
typedef enum {
COR_PRF_GC_GEN_0 = 0,
COR_PRF_GC_GEN_1 = 1,
COR_PRF_GC_GEN_2 = 2,
COR_PRF_GC_LARGE_OBJECT_HEAP = 3
} COR_PRF_GC_GENERATION;
メンバ
メンバ |
説明 |
---|---|
COR_PRF_GC_GEN_0 |
オブジェクトはジェネレーション 0 として格納されています。 |
COR_PRF_GC_GEN_1 |
オブジェクトはジェネレーション 1 として格納されています。 |
COR_PRF_GC_GEN_2 |
オブジェクトはジェネレーション 2 として格納されています。 |
COR_PRF_GC_LARGE_OBJECT_HEAP |
オブジェクトはラージ オブジェクト ヒープに格納されています。 |
解説
ガベージ コレクタを使用すると、オブジェクトが世代に基づいてジェネレーションに分割されるため、メモリ管理のパフォーマンスが向上します。ガベージ コレクタは現在、番号 0、1、および 2 の 3 つのジェネレーションに加え、大きなオブジェクト用の特殊なヒープ セグメントを使用します。サイズが特定の値を超える大きなオブジェクトは、ラージ オブジェクト ヒープに格納されます。割り当てられるその他のオブジェクトは、最初はジェネレーション 0 に格納されます。ガベージ コレクションが開始された後にジェネレーション 0 に存在するオブジェクトはすべて、ジェネレーション 1 に移動されます。ガベージ コレクションが開始された後にジェネレーション 1 に存在するオブジェクトは、ジェネレーション 2 に移動されます。
ジェネレーションを使用する理由は、ガベージ コレクタが一度に処理できるのが、割り当てられたオブジェクトの 1 つのサブセットのみであるためです。
COR_PRF_GC_GENERATION 列挙体は、COR_PRF_GC_GENERATION_RANGE 構造体によって使用されます。
必要条件
プラットフォーム : 「.NET Framework システム要件」を参照
ヘッダー : CorProf.idl
ライブラリ : CorGuids.lib
.NET Framework のバージョン : 3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0