英語で読む

次の方法で共有


GCLatencyMode 列挙型

定義

ガベージ コレクターがアプリケーションに関与する時間を調整します。

C#
public enum GCLatencyMode
C#
[System.Serializable]
public enum GCLatencyMode
継承
GCLatencyMode
属性

フィールド

名前 説明
Batch 0

ガベージ コレクションのコンカレンシーを無効にし、バッチ呼び出しでオブジェクトを解放します。 これは、関与するレベルが最も高いモードです。 このモードは応答性と引き換えに最大のスループットを実現するように設計されています。

Interactive 1

ガベージ コレクションのコンカレンシーを有効にし、アプリケーションの実行中にオブジェクトを解放します。 これは、ワークステーション上のガベージ コレクションの既定のモードで、関与するレベルは Batch より低くなります。 応答とスループットのバランスが保たれます。 このモードは、同時実行されるワークステーションのガベージ コレクションと同じです。

LowLatency 2

オブジェクトの解放時に、保守的なガベージ コレクションを有効にします。 システムがメモリ圧迫の状態でありながら、ジェネレーション 0 とジェネレーション 1 のコレクションが頻繁に発生する可能性がある場合のみ、すべてのコレクションが発生します。 このモードは、サーバーのガベージ コレクターでは使用できません。

NoGCRegion 4

アプリがクリティカル パスを実行中に、ガベージ コレクションが中断されることを示します。

NoGCRegion は読み取り専用値です。つまり、NoGCRegion 値を LatencyMode プロパティに割り当てることはできません。 TryStartNoGCRegion メソッドを呼び出して GC 領域待機時間モードなしを指定し、EndNoGCRegion() メソッドを呼び出して終了します。

SustainedLowLatency 3

長期間にわたって待機時間を最小限に抑えることを試みるガベージ コレクションを有効にします。 コレクターは、生成 0、生成 1、同時実行生成 2 のコレクションのみ実行しようとしています。 それでも、システムがメモリ圧迫の状態にある場合は、完全なブロック コレクションが発生することがあります。

注釈

を除くGCLatencyMode.NoGCRegion任意GCLatencyModeの列挙値に プロパティをLatencyMode設定することで、アプリケーション内のガベージ コレクションの侵入を調整できます。 プロパティ値を取得することで、ガベージ コレクターの現在の待機時間モードを GCSettings.LatencyMode 確認することもできます。

ガベージ コレクションのランタイム構成設定がこの列挙体の既定値にどのように影響するかについては、「 待機時間モード 」を参照してください。

モードはGCLatencyMode.Batch、gcConcurrent> ランタイム構成設定を<オーバーライドします。 gcConcurrent> 要素によって<同時実行ガベージ コレクションが有効になっている場合、Batch モードに切り替えると、それ以上の同時実行コレクションが防止されます。

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

こちらもご覧ください