GC.TryStartNoGCRegion メソッド

定義

クリティカル パスの実行中はガベージ コレクションが行われないよう、試行します。

オーバーロード

TryStartNoGCRegion(Int64, Int64, Boolean)

大きなオブジェクト ヒープおよび小さなオブジェクト ヒープに対して、指定した量のメモリを使用可能な場合は、クリティカル パスの実行中にガベージ コレクションが行われないよう、試行します。また、最初に十分な量のメモリを使用できない場合に、ガベージ コレクターがフル ブロッキング ガベージ コレクションを実行するかどうかを制御します。

TryStartNoGCRegion(Int64, Int64)

大きなオブジェクト ヒープおよび小さなオブジェクト ヒープに対して、指定した量のメモリを使用可能な場合、クリティカル パスの実行中にガベージ コレクションが行われないよう、試行します。

TryStartNoGCRegion(Int64, Boolean)

指定した量のメモリを使用可能な場合は、クリティカル パスの実行中にガベージ コレクションが行われないよう、試行します。また、最初に十分な量のメモリを使用できない場合に、ガベージ コレクターがフル ブロッキング ガベージ コレクションを実行するかどうかを制御します。

TryStartNoGCRegion(Int64)

指定した量のメモリを使用可能な場合、クリティカル パスの実行中にガベージ コレクションが行われないよう、試行します。

注釈

重要

メソッドの呼び出しを TryStartNoGCRegion 入れ子にすることはできません。また、ランタイムが現在 GC リージョン待機時間モードでない場合にのみ メソッドを呼び出 EndNoGCRegion す必要があります。 つまり、複数回を呼び出さないでください (最初のメソッド呼び出 TryStartNoGCRegion しの後、後続の呼び出しは成功しません)。また、最初の呼び出しが成功したという理由だけで呼び出し EndNoGCRegion が成功すると TryStartNoGCRegion は思わないはずです。

TryStartNoGCRegion(Int64, Int64, Boolean)

ソース:
GC.CoreCLR.cs
ソース:
GC.CoreCLR.cs
ソース:
GC.CoreCLR.cs

大きなオブジェクト ヒープおよび小さなオブジェクト ヒープに対して、指定した量のメモリを使用可能な場合は、クリティカル パスの実行中にガベージ コレクションが行われないよう、試行します。また、最初に十分な量のメモリを使用できない場合に、ガベージ コレクターがフル ブロッキング ガベージ コレクションを実行するかどうかを制御します。

public:
 static bool TryStartNoGCRegion(long totalSize, long lohSize, bool disallowFullBlockingGC);
public static bool TryStartNoGCRegion (long totalSize, long lohSize, bool disallowFullBlockingGC);
[System.Security.SecurityCritical]
public static bool TryStartNoGCRegion (long totalSize, long lohSize, bool disallowFullBlockingGC);
static member TryStartNoGCRegion : int64 * int64 * bool -> bool
[<System.Security.SecurityCritical>]
static member TryStartNoGCRegion : int64 * int64 * bool -> bool
Public Shared Function TryStartNoGCRegion (totalSize As Long, lohSize As Long, disallowFullBlockingGC As Boolean) As Boolean

パラメーター

totalSize
Int64

ガベージ コレクションをトリガーすることなく割り当てるメモリの量 (バイト) を指定します。 totalSize - lohSize は、短期セグメントのサイズ以下でなければなりません。 短期セグメントのサイズの詳細については、「ガベージ コレクションの基礎」記事の "短期のジェネレーションとセグメント" セクションを参照してください。

lohSize
Int64

totalSize のうち、に大きなオブジェクト ヒープ (LOH) の割り当てに使用するバイト数。

disallowFullBlockingGC
Boolean

ガベージ コレクターが指定されたメモリを最初に小さなオブジェクト ヒープ (SOH) および LOH に割り当てられないときにフル ブロッキング ガベージ コレクションを省略する場合は true。それ以外の場合は false

戻り値

ランタイムが、必要な量のメモリをコミットできたため、ガベージ コレクターが GC 領域の無待機モードに入ることができる場合は true。それ以外の場合は false

属性

例外

totalSize - lohSize は、短期セグメント サイズを超えています。

プロセスは既に、非 GC 領域待機時間モードになっています。

注釈

メソッドは TryStartNoGCRegion(Int64, Int64, Boolean) 、GC 領域待機時間モードなしでガベージ コレクターを配置しようとします。これにより、アプリが重要なコード領域を実行している間にガベージ コレクションが禁止されます。 ランタイムが要求された量のメモリを最初に割り当てることができない場合、 disallowFullBlockingGC 引数 が の場合、ガベージ コレクターは false、追加のメモリを解放しようとして完全なブロッキング ガベージ コレクションを実行します。それ以外の場合、割り当ては失敗し、 メソッドは を返します false。 ガベージ コレクターは、LOH とtotalSize - lohSize小さなオブジェクト ヒープ (SOH) に割り当てlohSizeることができる場合、GC リージョン待機時間モードに入らなくなります。

lohSize は、LOH のクリティカル パスで発生するすべてのメモリ割り当てを処理するのに十分な大きさである必要があり totalSize - lohSize 、SOH のクリティカル パスで発生するすべてのメモリ割り当てを処理するのに十分な大きさである必要があります。 これには、アプリによる割り当てと、ランタイムがアプリに代わって行う割り当てが含まれます。

を にtrue設定disallowFullBlockingGCすると、最初に十分なメモリがない場合に完全にブロックされるガベージ コレクションが負荷分散シナリオで最も役立ちます。1 つのシステムでは、このメソッドを呼び出し、 が返された場合は要求を受け入れる準備ができていると報告し、 が返falsetrueされた場合はロード バランサーによって他のシステムに要求がリダイレクトされます。 その後、 メソッドを呼び出して要求を処理していない場合は、フル ブロッキング ガベージ コレクションを Collect(Int32, GCCollectionMode, Boolean, Boolean) 実行できます。

重要

メソッドの呼び出しを TryStartNoGCRegion 入れ子にすることはできません。また、ランタイムが現在 GC リージョン待機時間モードでない場合にのみ メソッドを呼び出 EndNoGCRegion す必要があります。 つまり、複数回を呼び出さないでください (最初のメソッド呼び出 TryStartNoGCRegion しの後、後続の呼び出しは成功しません)。また、最初の呼び出しが成功したという理由だけで呼び出し EndNoGCRegion が成功すると TryStartNoGCRegion は思わないはずです。

メソッドを呼び出して、GC リージョン待機時間なしモードを EndNoGCRegion 終了します。

こちらもご覧ください

適用対象

TryStartNoGCRegion(Int64, Int64)

ソース:
GC.CoreCLR.cs
ソース:
GC.CoreCLR.cs
ソース:
GC.CoreCLR.cs

大きなオブジェクト ヒープおよび小さなオブジェクト ヒープに対して、指定した量のメモリを使用可能な場合、クリティカル パスの実行中にガベージ コレクションが行われないよう、試行します。

public:
 static bool TryStartNoGCRegion(long totalSize, long lohSize);
public static bool TryStartNoGCRegion (long totalSize, long lohSize);
[System.Security.SecurityCritical]
public static bool TryStartNoGCRegion (long totalSize, long lohSize);
static member TryStartNoGCRegion : int64 * int64 -> bool
[<System.Security.SecurityCritical>]
static member TryStartNoGCRegion : int64 * int64 -> bool
Public Shared Function TryStartNoGCRegion (totalSize As Long, lohSize As Long) As Boolean

パラメーター

totalSize
Int64

ガベージ コレクションをトリガーすることなく割り当てるメモリの量 (バイト) を指定します。 totalSize - lohSize は、短期セグメントのサイズ以下でなければなりません。 短期セグメントのサイズの詳細については、「ガベージ コレクションの基礎」記事の "短期のジェネレーションとセグメント" セクションを参照してください。

lohSize
Int64

totalSize のうち、に大きなオブジェクト ヒープ (LOH) の割り当てに使用するバイト数。

戻り値

ランタイムが、必要な量のメモリをコミットできたため、ガベージ コレクターが GC 領域の無待機モードに入ることができる場合は true。それ以外の場合は false

属性

例外

totalSize - lohSize は、短期セグメント サイズを超えています。

プロセスは既に、非 GC 領域待機時間モードになっています。

注釈

メソッドは TryStartNoGCRegion(Int64, Int64) 、GC 領域待機時間モードなしでガベージ コレクターを配置しようとします。これにより、アプリが重要なコード領域を実行している間にガベージ コレクションが禁止されます。 ランタイムが要求された量のメモリを最初に割り当てることができない場合、ガベージ コレクターは、追加のメモリを解放しようとしてフル ブロッキング ガベージ コレクションを実行します。 ガベージ コレクターは、LOH とtotalSize - lohSize小さなオブジェクト ヒープ (SOH) に割り当てlohSizeることができる場合、GC リージョン待機時間モードに入らなくなります。

lohSize は、LOH のクリティカル パスで発生するすべてのメモリ割り当てを処理するのに十分な大きさである必要があり totalSize - lohSize 、SOH のクリティカル パスで発生するすべてのメモリ割り当てを処理するのに十分な大きさである必要があります。 これには、アプリによる割り当てと、ランタイムがアプリに代わって行う割り当てが含まれます。

重要

メソッドの呼び出しを TryStartNoGCRegion 入れ子にすることはできません。また、ランタイムが現在 GC リージョン待機時間モードでない場合にのみ メソッドを呼び出 EndNoGCRegion す必要があります。 つまり、複数回を呼び出さないでください (最初のメソッド呼び出 TryStartNoGCRegion しの後、後続の呼び出しは成功しません)。また、最初の呼び出しが成功したという理由だけで呼び出し EndNoGCRegion が成功すると TryStartNoGCRegion は思わないはずです。

メソッドを呼び出して、GC リージョン待機時間なしモードを EndNoGCRegion 終了します。

こちらもご覧ください

適用対象

TryStartNoGCRegion(Int64, Boolean)

ソース:
GC.CoreCLR.cs
ソース:
GC.CoreCLR.cs
ソース:
GC.CoreCLR.cs

指定した量のメモリを使用可能な場合は、クリティカル パスの実行中にガベージ コレクションが行われないよう、試行します。また、最初に十分な量のメモリを使用できない場合に、ガベージ コレクターがフル ブロッキング ガベージ コレクションを実行するかどうかを制御します。

public:
 static bool TryStartNoGCRegion(long totalSize, bool disallowFullBlockingGC);
public static bool TryStartNoGCRegion (long totalSize, bool disallowFullBlockingGC);
[System.Security.SecurityCritical]
public static bool TryStartNoGCRegion (long totalSize, bool disallowFullBlockingGC);
static member TryStartNoGCRegion : int64 * bool -> bool
[<System.Security.SecurityCritical>]
static member TryStartNoGCRegion : int64 * bool -> bool
Public Shared Function TryStartNoGCRegion (totalSize As Long, disallowFullBlockingGC As Boolean) As Boolean

パラメーター

totalSize
Int64

ガベージ コレクションをトリガーすることなく割り当てるメモリの量 (バイト) を指定します。 短期セグメントのサイズ以下でなければなりません。 短期セグメントのサイズの詳細については、「ガベージ コレクションの基礎」記事の "短期のジェネレーションとセグメント" セクションを参照してください。

disallowFullBlockingGC
Boolean

ガベージ コレクターが最初に true バイトを割り当てられなかったときにフル ブロッキング ガベージ コレクションを省略する場合は totalSize。それ以外の場合は false

戻り値

ランタイムが、必要な量のメモリをコミットできたため、ガベージ コレクターが GC 領域の無待機モードに入ることができる場合は true。それ以外の場合は false

属性

例外

totalSize は、短期セグメント サイズを超えています。

プロセスは既に、非 GC 領域待機時間モードになっています。

注釈

メソッドは TryStartNoGCRegion(Int64, Boolean) 、GC 領域待機時間モードなしでガベージ コレクターを配置しようとします。これにより、アプリが重要なコード領域を実行している間にガベージ コレクションが禁止されます。 ランタイムが要求された量のメモリを最初に割り当てることができない場合、 disallowFullBlockingGC 引数 が の場合、ガベージ コレクターは false、追加のメモリを解放しようとして完全なブロッキング ガベージ コレクションを実行します。それ以外の場合、割り当ては失敗し、 メソッドは を返します false。 ガベージ コレクターは、必要な量のメモリを割り当てることができる場合、GC 領域の待機時間モードに入りません。この場合、実際には 2 * totalSize です (小さなオブジェクト ヒープとtotalSizeラージ オブジェクト ヒープに割り当てtotalSizeようとします)。

totalSize は、クリティカル パスで発生するすべてのメモリ割り当てを処理するのに十分な大きさである必要があります。 これには、アプリによる割り当てと、ランタイムがアプリに代わって行う割り当てが含まれます。

を にtrue設定disallowFullBlockingGCすると、最初に十分なメモリがない場合に完全にブロックされるガベージ コレクションが負荷分散シナリオで最も役立ちます。1 つのシステムでは、このメソッドを呼び出し、 が返された場合は要求を受け入れる準備ができていると報告し、 が返falsetrueされた場合はロード バランサーによって他のシステムに要求がリダイレクトされます。 その後、 メソッドを呼び出して要求を処理していない場合は、フル ブロッキング ガベージ コレクションを Collect(Int32, GCCollectionMode, Boolean, Boolean) 実行できます。

重要

メソッドの呼び出しを TryStartNoGCRegion 入れ子にすることはできません。また、ランタイムが現在 GC リージョン待機時間モードでない場合にのみ メソッドを呼び出 EndNoGCRegion す必要があります。 つまり、複数回を呼び出さないでください (最初のメソッド呼び出 TryStartNoGCRegion しの後、後続の呼び出しは成功しません)。また、最初の呼び出しが成功したという理由だけで呼び出し EndNoGCRegion が成功すると TryStartNoGCRegion は思わないはずです。

メソッドを呼び出して、GC リージョン待機時間なしモードを EndNoGCRegion 終了します。

こちらもご覧ください

適用対象

TryStartNoGCRegion(Int64)

ソース:
GC.CoreCLR.cs
ソース:
GC.CoreCLR.cs
ソース:
GC.CoreCLR.cs

指定した量のメモリを使用可能な場合、クリティカル パスの実行中にガベージ コレクションが行われないよう、試行します。

public:
 static bool TryStartNoGCRegion(long totalSize);
public static bool TryStartNoGCRegion (long totalSize);
[System.Security.SecurityCritical]
public static bool TryStartNoGCRegion (long totalSize);
static member TryStartNoGCRegion : int64 -> bool
[<System.Security.SecurityCritical>]
static member TryStartNoGCRegion : int64 -> bool
Public Shared Function TryStartNoGCRegion (totalSize As Long) As Boolean

パラメーター

totalSize
Int64

ガベージ コレクションをトリガーすることなく割り当てるメモリの量 (バイト) を指定します。 短期セグメントのサイズ以下でなければなりません。 短期セグメントのサイズの詳細については、「ガベージ コレクションの基礎」記事の "短期のジェネレーションとセグメント" セクションを参照してください。

戻り値

ランタイムが、必要な量のメモリをコミットできたため、ガベージ コレクターが GC 領域の無待機モードに入ることができる場合は true。それ以外の場合は false

属性

例外

totalSize は、短期セグメント サイズを超えています。

プロセスは既に、非 GC 領域待機時間モードになっています。

注釈

メソッドは TryStartNoGCRegion(Int64) 、GC 領域待機時間モードなしでガベージ コレクターを配置しようとします。これにより、アプリが重要なコード領域を実行している間にガベージ コレクションが禁止されます。 ランタイムが要求された量のメモリを最初に割り当てることができない場合、ガベージ コレクターは、追加のメモリを解放しようとしてフル ブロッキング ガベージ コレクションを実行します。 ガベージ コレクターは、必要な量のメモリを割り当てることができる場合、GC 領域の待機時間モードに入りません。この場合、実際には 2 * totalSize バイトです (ラージ オブジェクト ヒープの小さなオブジェクト ヒープにバイトをtotalSize割り当てtotalSizeようとします)。

totalSize は、クリティカル パスで発生するすべてのメモリ割り当てを処理するのに十分な大きさである必要があります。 これには、アプリによる割り当てと、ランタイムがアプリに代わって行う割り当てが含まれます。

重要

メソッドの呼び出しを TryStartNoGCRegion 入れ子にすることはできません。また、ランタイムが現在 GC リージョン待機時間モードでない場合にのみ メソッドを呼び出 EndNoGCRegion す必要があります。 つまり、複数回を呼び出さないでください (最初のメソッド呼び出 TryStartNoGCRegion しの後、後続の呼び出しは成功しません)。また、最初の呼び出しが成功したという理由だけで呼び出し EndNoGCRegion が成功すると TryStartNoGCRegion は思わないはずです。

メソッドを呼び出して、GC リージョン待機時間なしモードを EndNoGCRegion 終了します。

こちらもご覧ください

適用対象