GCSettings.LargeObjectHeapCompactionMode Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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()