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ů. Z důvodu dopadu na výkon kopírování velkých bloků paměti obvykle uvolňování paměti zamění LOH, což zahrnuje vytvoření seznamu umístění paměti, která byla obsazena mrtvými objekty a které je možné opakovaně použít k uspokojení budoucích požadavků na přidělení paměti pro velké objekty. V aplikacích, které LOH používají k ukládání přechodných objektů, však fragmentace paměti může nepříznivě ovlivnit výkon. V tomto případě je možné použít LargeObjectHeapCompactionMode vlastnost komprimovat místo 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 vlastnost přiřadíte hodnotu GCLargeObjectHeapCompactionMode.CompactOnce, LOH je komprimován během další úplné blokování uvolňování paměti a hodnota vlastnosti je resetována .GCLargeObjectHeapCompactionMode.Default

Poznámka:

Uvolňování paměti na pozadí neblokuje. To znamená, že pokud nastavíte LargeObjectHeapCompactionMode vlastnost GCLargeObjectHeapCompactionMode.CompactOncena , všechny kolekce generace 2 na pozadí, ke kterým dojde následně, nebudou komprimovat LOH. Pouze první blokující generace 2 kolekce komprimuje LOH.

LargeObjectHeapCompactionMode Po nastavení GCLargeObjectHeapCompactionMode.CompactOncevlastnosti se další úplné blokování uvolňování paměti (a komprimace LOH) vyskytuje v neurčité budoucí době. LOH můžete okamžitě zkomprimovat pomocí následujícího kódu:

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

Platí pro

Viz také