GC.AddMemoryPressure(Int64) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Informiert die Laufzeit über eine große Belegung von nicht verwaltetem Arbeitsspeicher, der beim Planen der Garbage Collection in Erwägung gezogen werden muss.
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)
Parameter
- bytesAllocated
- Int64
Die inkrementelle Menge an nicht verwaltetem Arbeitsspeicher, die belegt wurde.
- Attribute
Ausnahmen
bytesAllocated
ist kleiner oder gleich 0.
- oder -
Auf einem 32-Bit-Computer bytesAllocated
ist größer als Int32.MaxValue.
Hinweise
Bei der Bestimmung, wann die Garbage Collection geplant werden soll, berücksichtigt die Runtime, wie viel verwalteter Arbeitsspeicher zugewiesen ist. Wenn ein kleines verwaltetes Objekt eine große Menge nicht verwalteten Arbeitsspeicher zuweist, berücksichtigt die Runtime nur den verwalteten Arbeitsspeicher und unterschätzt daher die Dringlichkeit der Planung der Garbage Collection. Die AddMemoryPressure Methode informiert die Laufzeit über diesen zusätzlichen Druck auf den Systemspeicher.
Die AddMemoryPressure Methoden und RemoveMemoryPressure verbessern die Leistung nur für Typen, die ausschließlich von Finalizern abhängen, um die nicht verwalteten Ressourcen freizugeben. Es ist nicht erforderlich, diese Methoden in Typen zu verwenden, die dem Dispose-Muster folgen, wobei Finalizer verwendet werden, um nicht verwaltete Ressourcen nur dann zu sauber, wenn ein Consumer des Typs vergisst, aufzurufenDispose
. Weitere Informationen zur Objektabschlusserstellung und zum Entsorgemuster finden Sie unter Bereinigen nicht verwalteter Ressourcen.
Im einfachsten Verwendungsmuster weist ein verwaltetes Objekt nicht verwalteten Arbeitsspeicher im Konstruktor zu und gibt ihn in der Finalize
-Methode frei. Rufen Sie die AddMemoryPressure -Methode auf, nachdem Sie den nicht verwalteten Arbeitsspeicher zugewiesen haben, und rufen Sie die Methode nach dem RemoveMemoryPressure Freigeben auf.
In komplizierteren Szenarien, in denen sich die nicht verwaltete Speicherzuordnung während der Lebensdauer des verwalteten Objekts erheblich ändert, können Sie die AddMemoryPressure Methoden und RemoveMemoryPressure aufrufen, um diese inkrementellen Änderungen an die Runtime zu kommunizieren.
Achtung
Sie müssen sicherstellen, dass Sie genau den Druck entfernen, den Sie hinzufügen. Andernfalls kann sich dies negativ auf die Leistung des Systems in Anwendungen auswirken, die über einen langen Zeitraum ausgeführt werden.