GC.AddMemoryPressure(Int64) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Informuje środowisko uruchomieniowe dużej alokacji niezarządzanej pamięci, którą należy wziąć pod uwagę podczas planowania odzyskiwania pamięci.
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)
Parametry
- bytesAllocated
- Int64
Przyrostowa ilość niezarządzanej pamięci, która została przydzielona.
- Atrybuty
Wyjątki
bytesAllocated
wartość jest mniejsza niż lub równa 0.
-lub-
Na komputerze bytesAllocated
32-bitowym jest większy niż Int32.MaxValue.
Uwagi
Podczas określania czasu planowania odzyskiwania pamięci środowisko uruchomieniowe uwzględnia ilość przydzielonej pamięci zarządzanej. Jeśli mały obiekt zarządzany przydziela dużą ilość niezarządzanej pamięci, środowisko uruchomieniowe uwzględnia tylko zarządzaną pamięć, a tym samym nie docenia pilności planowania odzyskiwania pamięci. Metoda AddMemoryPressure informuje środowisko uruchomieniowe o tym dodatkowym nacisku na pamięć systemową.
Metody AddMemoryPressure i RemoveMemoryPressure zwiększają wydajność tylko dla typów, które zależą wyłącznie od finalizatorów, aby zwolnić niezarządzane zasoby. Nie trzeba używać tych metod w typach, które są zgodne ze wzorcem usuwania, gdzie finalizatory są używane do czyszczenia niezarządzanych zasobów tylko w przypadku, gdy użytkownik typu zapomni wywołać metodę Dispose
. Aby uzyskać więcej informacji na temat finalizacji obiektów i wzorca usuwania, zobacz Czyszczenie niezarządzanych zasobów.
W najprostszym wzorcu użycia obiekt zarządzany przydziela niezarządzaną pamięć w konstruktorze i zwalnia go w metodzie Finalize
. Wywołaj metodę AddMemoryPressure po przydzieleniu niezarządzanej pamięci i wywołaj metodę RemoveMemoryPressure po jej wydaniu.
W bardziej skomplikowanych scenariuszach, w których alokacja pamięci niezarządzanej zmienia się znacząco w okresie istnienia zarządzanego obiektu, można wywołać AddMemoryPressure metody i RemoveMemoryPressure w celu przekazania tych przyrostowych zmian do środowiska uruchomieniowego.
Przestroga
Musisz upewnić się, że usuwasz dokładnie ilość dodawanego ciśnienia. Nie można tego zrobić, może negatywnie wpłynąć na wydajność systemu w aplikacjach działających przez długi czas.