GCSettings.LargeObjectHeapCompactionMode Eigenschaft

Definition

Ruft einen Wert ab oder legt ihn fest, der angibt, ob eine vollständige blockierende Garbage Collection den großen Objektheap (LOH) komprimiert.

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>]
member this.LargeObjectHeapCompactionMode : System.Runtime.GCLargeObjectHeapCompactionMode with get, set
member this.LargeObjectHeapCompactionMode : System.Runtime.GCLargeObjectHeapCompactionMode with get, set
Public Shared Property LargeObjectHeapCompactionMode As GCLargeObjectHeapCompactionMode

Eigenschaftswert

GCLargeObjectHeapCompactionMode

Einer der Enumerationswerte, der angibt, ob eine vollständige blockierende Garbage Collection das LOH komprimiert.

Attribute

Hinweise

Der LOH wird für die Zuordnung des Arbeitsspeichers für große Objekte (z. B. Arrays) verwendet, die mehr als 85.000 Bytes erfordern. Aufgrund der Leistungswirkung des Kopierens großer Speicherblöcke übergibt der Garbage Collector die LOH, die eine Liste der Speicherspeicherorte erstellt, die von toten Objekten besetzt wurden und die wiederverwendet werden können, um zukünftige Anforderungen für die Zuordnung des Speichers für große Objekte zu erfüllen. In Apps, die eine umfangreiche Verwendung des LOH zum Speichern vorübergehender Objekte vornehmen, kann die Speicherfragmentierung jedoch auch die Leistung beeinträchtigen. In diesem Fall ist es möglich, die Eigenschaft zu komprimieren, anstatt einfach den LargeObjectHeapCompactionMode LOH während einer Müllsammlung zu verwischen.

Der Standardwert der LargeObjectHeapCompactionMode Eigenschaft ist GCLargeObjectHeapCompactionMode.Default, was angibt, dass der LOH während der Müllsammlungen nicht komprimiert wird. Wenn Sie die Eigenschaft einem Wert GCLargeObjectHeapCompactionMode.CompactOncezuweisen, wird der LOH während der nächsten vollständig blockierten Garbage Collection komprimiert, und der Eigenschaftswert wird zurückgesetzt.GCLargeObjectHeapCompactionMode.Default

Hinweis

Hintergrund-Müllsammlungen werden nicht blockiert. Dies bedeutet, dass, wenn Sie die Eigenschaft auf GCLargeObjectHeapCompactionMode.CompactOncefestlegen, alle Hintergrundgeneration 2-Auflistungen, die LargeObjectHeapCompactionMode später auftreten, die LOH nicht komprimieren. Nur die erste blockierende Generation 2-Sammlung kompaktiert den LOH.

Nachdem die LargeObjectHeapCompactionMode Eigenschaft auf GCLargeObjectHeapCompactionMode.CompactOnce"" festgelegt ist, tritt die nächste vollständige Blockierung der Garbage Collection (und die Komprimierung des LOH) zu einem späteren Zeitpunkt auf. Sie können den LOH sofort komprimieren, indem Sie Code wie folgt verwenden:

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

Gilt für:

Siehe auch