GCSettings.LargeObjectHeapCompactionMode Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
GC.Collect();
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce
GC.Collect()