GC.AddMemoryPressure(Int64) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
アンマネージ メモリが大規模に割り当てられたため、ガベージ コレクションをスケジュールするときに考慮する必要があることが、ランタイムに通知されます。
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
割り当てられたアンマネージ メモリの増加量。
- 属性
例外
注釈
ガベージ コレクションをスケジュールするタイミングを決定する際に、ランタイムでは、割り当てられているマネージド メモリの量が考慮されます。 小さなマネージド オブジェクトが大量のアンマネージ メモリを割り当てる場合、ランタイムはマネージド メモリのみを考慮するため、ガベージ コレクションをスケジュールする緊急度を過小評価します。 メソッドは AddMemoryPressure 、システム メモリに対するこの追加の負荷をランタイムに通知します。
メソッドと RemoveMemoryPressure メソッドはAddMemoryPressure、アンマネージ リソースを解放するためにファイナライザーのみに依存する型に対してのみパフォーマンスを向上させます。 dispose パターンに従う型では、これらのメソッドを使用する必要はありません。ファイナライザーは、型のコンシューマーが を呼び出Dispose
し忘れた場合にのみ、アンマネージ リソースをクリーンするために使用されます。 オブジェクトの最終処理と破棄パターンの詳細については、「 アンマネージ リソースのクリーンアップ」を参照してください。
最も単純な使用パターンでは、マネージド オブジェクトによってコンストラクターにアンマネージ メモリが割り当てられ、 Finalize
メソッドで解放されます。 アンマネージ メモリを AddMemoryPressure 割り当てた後に メソッドを呼び出し、解放後に RemoveMemoryPressure メソッドを呼び出します。
より複雑なシナリオでは、マネージド オブジェクトの有効期間中にアンマネージ メモリ割り当てが大幅に変更される場合は、 メソッドと RemoveMemoryPressure メソッドを呼び出AddMemoryPressureして、これらの増分変更をランタイムに伝達できます。
注意事項
追加する圧力の量を正確に削除する必要があります。 これを行わないと、長時間実行されるアプリケーションのシステムのパフォーマンスに悪影響を及ぼす可能性があります。
適用対象
.NET