GC.AddMemoryPressure(Int64) メソッド

定義

アンマネージ メモリが大規模に割り当てられたため、ガベージ コレクションをスケジュールするときに考慮する必要があることが、ランタイムに通知されます。

public:
 static void AddMemoryPressure(long bytesAllocated);
[System.Security.SecurityCritical]
public static void AddMemoryPressure (long bytesAllocated);
public static void AddMemoryPressure (long bytesAllocated);
[<System.Security.SecurityCritical>]
static member AddMemoryPressure : int64 -> unit
static member AddMemoryPressure : int64 -> unit
Public Shared Sub AddMemoryPressure (bytesAllocated As Long)

パラメーター

bytesAllocated
Int64

割り当てられたアンマネージ メモリの増加量。

属性

例外

bytesAllocated が 0 以下です。

または

32 ビット コンピューターでは、 bytesAllocatedInt32.MaxValue を超えています。

注釈

ガベージ コレクションをスケジュールするタイミングを決定する際に、ランタイムでは、割り当てられているマネージド メモリの量が考慮されます。 小さなマネージド オブジェクトが大量のアンマネージ メモリを割り当てる場合、ランタイムはマネージド メモリのみを考慮するため、ガベージ コレクションをスケジュールする緊急度を過小評価します。 メソッドは AddMemoryPressure 、システム メモリに対するこの追加の負荷をランタイムに通知します。

メソッドと RemoveMemoryPressure メソッドはAddMemoryPressure、アンマネージ リソースを解放するためにファイナライザーのみに依存する型に対してのみパフォーマンスを向上させます。 dispose パターンに従う型では、これらのメソッドを使用する必要はありません。ファイナライザーは、型のコンシューマーが を呼び出Disposeし忘れた場合にのみ、アンマネージ リソースをクリーンするために使用されます。 オブジェクトの最終処理と破棄パターンの詳細については、「 アンマネージ リソースのクリーンアップ」を参照してください。

最も単純な使用パターンでは、マネージド オブジェクトによってコンストラクターにアンマネージ メモリが割り当てられ、 Finalize メソッドで解放されます。 アンマネージ メモリを AddMemoryPressure 割り当てた後に メソッドを呼び出し、解放後に RemoveMemoryPressure メソッドを呼び出します。

より複雑なシナリオでは、マネージド オブジェクトの有効期間中にアンマネージ メモリ割り当てが大幅に変更される場合は、 メソッドと RemoveMemoryPressure メソッドを呼び出AddMemoryPressureして、これらの増分変更をランタイムに伝達できます。

注意事項

追加する圧力の量を正確に削除する必要があります。 これを行わないと、長時間実行されるアプリケーションのシステムのパフォーマンスに悪影響を及ぼす可能性があります。

適用対象