GCSettings.LargeObjectHeapCompactionMode プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
フル ブロッキング ガベージ コレクションが大きなオブジェクト ヒープ (LOH) を圧縮するかどうかを示す値を取得または設定します。
public:
static property System::Runtime::GCLargeObjectHeapCompactionMode LargeObjectHeapCompactionMode { System::Runtime::GCLargeObjectHeapCompactionMode get(); void set(System::Runtime::GCLargeObjectHeapCompactionMode value); };
public static System.Runtime.GCLargeObjectHeapCompactionMode LargeObjectHeapCompactionMode { get; [System.Security.SecurityCritical] set; }
public static System.Runtime.GCLargeObjectHeapCompactionMode LargeObjectHeapCompactionMode { get; set; }
[<set: System.Security.SecurityCritical>]
member this.LargeObjectHeapCompactionMode : System.Runtime.GCLargeObjectHeapCompactionMode with get, set
member this.LargeObjectHeapCompactionMode : System.Runtime.GCLargeObjectHeapCompactionMode with get, set
Public Shared Property LargeObjectHeapCompactionMode As GCLargeObjectHeapCompactionMode
プロパティ値
フル ブロッキング ガベージ コレクションが LOH を圧縮するかどうかを示す、列挙値の 1 つです。
- 属性
注釈
LOH は、85,000 バイトを超えるサイズのオブジェクト (配列など) にメモリを割り当てる場合に使用されます。 大きなメモリ ブロックをコピーするとパフォーマンスが低下するため、通常、ガベージ コレクターは LOH をスイープします。これには、配信不能オブジェクトによって占有されていたメモリの場所の一覧が作成され、大規模なオブジェクトに対するメモリの割り当てに関する今後の要求を満たすために再利用できます。 ただし、LOH を広範に使用して一時的なオブジェクトを格納するアプリでは、メモリの断片化もパフォーマンスに悪影響を与える可能性があります。 この場合、ガベージ コレクション中に単に LOH を LargeObjectHeapCompactionMode スイープするのではなく、プロパティを使用してコンパクト化できます。
プロパティの LargeObjectHeapCompactionMode 既定値は、 GCLargeObjectHeapCompactionMode.Defaultガベージ コレクション中に LOH が圧縮されていないことを示します。 プロパティに値を割り当てると、次の GCLargeObjectHeapCompactionMode.CompactOnce完全ブロック ガベージ コレクション中に LOH が圧縮され、プロパティ値がにリセット GCLargeObjectHeapCompactionMode.Defaultされます。
注意
バックグラウンド ガベージ コレクションがブロックされていません。 つまり、プロパティをLargeObjectHeapCompactionModeGCLargeObjectHeapCompactionMode.CompactOnce設定した場合、後で発生する任意のバックグラウンドジェネレーション 2 コレクションでは、LOH は圧縮されません。 LOH を圧縮するのは、第 1 ブロック第 2 世代コレクションだけです。
プロパティが LargeObjectHeapCompactionMode 設定 GCLargeObjectHeapCompactionMode.CompactOnceされると、次の完全なブロッキング ガベージ コレクション (および LOH の圧縮) は、不確定な将来に発生します。 次のようなコードを使用して、LOH をすぐに圧縮できます。
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
GC.Collect();
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce
GC.Collect()