GCSettings.LargeObjectHeapCompactionMode Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of een volledige blokkerende garbagecollection de grote object heap (LOH) comprimert.
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
Waarde van eigenschap
Een van de opsommingswaarden die aangeeft of een volledige blokkerende garbagecollection de LOH compereert.
- Kenmerken
Opmerkingen
De LOH wordt gebruikt voor het toewijzen van geheugen voor grote objecten (zoals matrices) waarvoor meer dan 85.000 bytes nodig zijn. Vanwege de prestatieimpact van het kopiƫren van grote blokken geheugen, veegt de garbagecollector de LOH gewoonlijk op, waarbij een lijst wordt gemaakt met de geheugenlocaties die door dode objecten zijn bezet en die opnieuw kunnen worden gebruikt om te voldoen aan toekomstige aanvragen voor de toewijzing van geheugen voor grote objecten. In apps die intensief gebruikmaken van de LOH om tijdelijke objecten op te slaan, kan geheugenfragmentatie echter ook een negatieve invloed hebben op de prestaties. In dit geval is het mogelijk om de LargeObjectHeapCompactionMode eigenschap te gebruiken om te comprimeren in plaats van gewoon de LOH te vegen tijdens een garbagecollection.
De standaardwaarde van de LargeObjectHeapCompactionMode eigenschap is GCLargeObjectHeapCompactionMode.Default, wat aangeeft dat de LOH niet wordt gecomprimeerd tijdens garbagecollection. Als u de eigenschap een waarde GCLargeObjectHeapCompactionMode.CompactOncetoewijst, wordt de LOH gecomprimeerd tijdens de volgende volledige blokkerende garbagecollection en wordt de eigenschapswaarde opnieuw ingesteld GCLargeObjectHeapCompactionMode.Defaultop .
Note
Garbagecollection's op de achtergrond blokkeren niet. Dit betekent dat, als u de LargeObjectHeapCompactionMode eigenschap GCLargeObjectHeapCompactionMode.CompactOnceinstelt op, alle verzamelingen van de achtergrondgeneratie 2 die zich vervolgens voordoen, de LOH niet comprimeren. Alleen de eerste blokkerende collectie van generatie 2 compactt de LOH.
Nadat de LargeObjectHeapCompactionMode eigenschap is ingesteld op GCLargeObjectHeapCompactionMode.CompactOnce, vindt de volgende volledige blokkerende garbagecollection (en compressie van de LOH) plaats op een onbepaald tijdstip in de toekomst. U kunt de LOH direct comprimeren met behulp van code als de volgende:
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
GC.Collect();
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce
GC.Collect()