Sdílet prostřednictvím


GCSettings.LargeObjectHeapCompactionMode Vlastnost

Definice

Získá nebo nastaví hodnotu, která označuje, zda úplné blokování uvolňování paměti komprimuje velkou haldu objektu (LOH).

public:
 static property System::Runtime::GCLargeObjectHeapCompactionMode LargeObjectHeapCompactionMode { System::Runtime::GCLargeObjectHeapCompactionMode get(); void set(System::Runtime::GCLargeObjectHeapCompactionMode value); };
public static System.Runtime.GCLargeObjectHeapCompactionMode LargeObjectHeapCompactionMode { get; [System.Security.SecurityCritical] set; }
public static System.Runtime.GCLargeObjectHeapCompactionMode LargeObjectHeapCompactionMode { get; set; }
[<set: System.Security.SecurityCritical>]
static member LargeObjectHeapCompactionMode : System.Runtime.GCLargeObjectHeapCompactionMode with get, set
static member LargeObjectHeapCompactionMode : System.Runtime.GCLargeObjectHeapCompactionMode with get, set
Public Shared Property LargeObjectHeapCompactionMode As GCLargeObjectHeapCompactionMode

Hodnota vlastnosti

Jedna z hodnot výčtu, která označuje, zda úplné blokování uvolňování paměti komprimuje LOH.

Atributy

Poznámky

LOH se používá k přidělování paměti pro velké objekty (například pole), které vyžadují více než 85 000 bajtů. Vzhledem k dopadu kopírování velkých bloků paměti na výkon nástroj uvolňování paměti obvykle vymaže LOH, což zahrnuje vytvoření seznamu umístění paměti, která byla obsazena mrtvými objekty a která lze znovu použít k uspokojení budoucích požadavků na přidělení paměti pro velké objekty. V aplikacích, které k ukládání přechodných objektů ve velké míře využívají LOH, může fragmentace paměti také nepříznivě ovlivnit výkon. V tomto případě je možné použít LargeObjectHeapCompactionMode vlastnost ke komprimování, spíše než jednoduše uklidit LOH během uvolňování paměti.

Výchozí hodnota LargeObjectHeapCompactionMode vlastnosti je GCLargeObjectHeapCompactionMode.Default, což označuje, že LOH není komprimován během uvolňování paměti. Pokud vlastnosti přiřadíte hodnotu GCLargeObjectHeapCompactionMode.CompactOnce, LOH se komprimuje během dalšího úplného blokování uvolňování paměti a hodnota vlastnosti se resetuje na GCLargeObjectHeapCompactionMode.Default.

Poznámka

Uvolňování paměti na pozadí neblokují. To znamená, že pokud nastavíte LargeObjectHeapCompactionMode vlastnost na GCLargeObjectHeapCompactionMode.CompactOnce, žádné kolekce generace 2 na pozadí, které se následně objeví, nebudou komprimovat LOH. Pouze první blokovací generace 2 kolekce komprimuje LOH.

LargeObjectHeapCompactionMode Jakmile je vlastnost nastavena na GCLargeObjectHeapCompactionMode.CompactOnce, dojde k dalšímu úplnému blokování uvolňování paměti (a komprimaci LOH) v neurčité budoucí době. LOH můžete okamžitě komprimovat pomocí následujícího kódu:

GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
GC.Collect();
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce
GC.Collect()

Platí pro

Viz také