Freigeben über


GCSettings.LargeObjectHeapCompactionMode Eigenschaft

Definition

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob eine vollständige blockierende Garbage Collection den Heap für große Objekte (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>]
static member LargeObjectHeapCompactionMode : System.Runtime.GCLargeObjectHeapCompactionMode with get, set
static member LargeObjectHeapCompactionMode : System.Runtime.GCLargeObjectHeapCompactionMode with get, set
Public Shared Property LargeObjectHeapCompactionMode As GCLargeObjectHeapCompactionMode

Eigenschaftswert

Einer der Enumerationswerte, der angibt, ob eine vollständige blockende Garbage Collection den LOH komprimiert.

Attribute

Hinweise

Der LOH wird zum Zuordnen des Speichers für große Objekte (z. B. Arrays) verwendet, die mehr als 85.000 Bytes erfordern. Aufgrund der Leistungseinbußen beim Kopieren großer Speicherblöcke löscht der Garbage Collector die LOH in ordnungsmäßiger Weise, wodurch eine Liste der Speicherspeicherorte erstellt wird, die von toten Objekten belegt wurden und die wiederverwendet werden können, um zukünftige Anforderungen für die Zuweisung des Speichers für große Objekte zu erfüllen. In Apps, die den LOH umfassend nutzen, um vorübergehende Objekte zu speichern, kann sich die Speicherfragmentierung jedoch auch negativ auf die Leistung auswirken. In diesem Fall ist es möglich, die LargeObjectHeapCompactionMode Eigenschaft zu komprimieren, anstatt einfach den LOH während einer Garbage Collection zu beraufen.

Der Standardwert der LargeObjectHeapCompactionMode Eigenschaft lautet GCLargeObjectHeapCompactionMode.Default, was angibt, dass der LOH während der Garbage Collections nicht komprimiert wird. Wenn Sie die Eigenschaft einem Wert GCLargeObjectHeapCompactionMode.CompactOncezuweisen, wird der LOH während der nächsten vollständigen Blockierung der Garbage Collection komprimiert, und der Eigenschaftswert wird zurückgesetzt.GCLargeObjectHeapCompactionMode.Default

Hinweis

Hintergrundbereinigungen werden nicht blockiert. Dies bedeutet, dass bei Festlegung der LargeObjectHeapCompactionMode Eigenschaft GCLargeObjectHeapCompactionMode.CompactOncealle 2-Auflistungen der Hintergrundgeneration 2, die anschließend auftreten, nicht die LOH komprimieren. Nur die erste Blockierungssammlung der 2. Generation komprimiert den LOH.

Nachdem die Eigenschaft auf <a0/gt; festgelegt ist, erfolgt die nächste vollständige Blockierung der Garbage Collection (und Komprimierung des LOH) zu einem unbestimmten zeitpunkt. 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:

Weitere Informationen