GC.AddMemoryPressure(Int64) Methode

Definition

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 ist bytesAllocated größer als MaxValue.

Hinweise

Bei der Bestimmung, wann die Garbage Collection geplant werden soll, berücksichtigt die Laufzeit, wie viel verwalteter Arbeitsspeicher zugewiesen wird. Wenn ein kleines verwaltetes Objekt eine große Menge an nicht verwaltetem Arbeitsspeicher zuordnet, berücksichtigt die Laufzeit nur den verwalteten Arbeitsspeicher, und dadurch wird die Dringlichkeit der Planung von Müllsammlungen unterschätzt. Die AddMemoryPressure Methode informiert die Laufzeit dieses zusätzlichen Drucks auf den Systemspeicher.

Die AddMemoryPressure und RemoveMemoryPressure Methoden verbessern die Leistung nur für Typen, die ausschließlich von Finalizern abhängig sind, um die nicht verwalteten Ressourcen zu freigeben. Es ist nicht erforderlich, diese Methoden in Typen zu verwenden, die dem Entsorgenmuster folgen, wobei Finalizer verwendet werden, um nicht verwaltete Ressourcen nur dann zu bereinigen, wenn ein Verbraucher des Typs vergessen wird, aufrufen zu können Dispose. Weitere Informationen zur Endisierung des Objekts und des Entsorgungsmusters finden Sie unter "Nicht verwaltete Ressourcen".

Im einfachsten Verwendungsmuster weist ein verwaltetes Objekt im Konstruktor unmanaged Arbeitsspeicher zu und veröffentlicht es in der Finalize Methode. Rufen Sie die AddMemoryPressure Methode nach der Zuweisung des nicht verwalteten Arbeitsspeichers auf, und rufen Sie die RemoveMemoryPressure Methode nach dem Freigeben auf.

In komplizierteren Szenarien, in denen sich die nicht verwaltete Speicherzuweisung während der Lebensdauer des verwalteten Objekts erheblich ändert, können Sie die AddMemoryPressure RemoveMemoryPressure und Methoden aufrufen, um diese inkrementellen Änderungen an der Laufzeit zu kommunizieren.

Achtung

Sie müssen sicherstellen, dass Sie genau die Menge an Druck entfernen, die Sie hinzufügen. Dies kann sich negativ auf die Leistung des Systems in Anwendungen auswirken, die für lange Zeiträume ausgeführt werden.

Gilt für: