GCSettings.LargeObjectHeapCompactionMode GCSettings.LargeObjectHeapCompactionMode GCSettings.LargeObjectHeapCompactionMode GCSettings.LargeObjectHeapCompactionMode Property

Definition

Ruft einen Wert ab oder legt ihn fest, der angibt, ob eine vollständige blockierende Garbage Collection den großen Objektheap (LOH) komprimiert.Gets or sets a value that indicates whether a full blocking garbage collection compacts the large object heap (LOH).

public:
 static property System::Runtime::GCLargeObjectHeapCompactionMode LargeObjectHeapCompactionMode { System::Runtime::GCLargeObjectHeapCompactionMode get(); void set(System::Runtime::GCLargeObjectHeapCompactionMode value); };
[set: System.Security.SecurityCritical]
public static System.Runtime.GCLargeObjectHeapCompactionMode LargeObjectHeapCompactionMode { get; set; }
member this.LargeObjectHeapCompactionMode : System.Runtime.GCLargeObjectHeapCompactionMode with get, set
Public Shared Property LargeObjectHeapCompactionMode As GCLargeObjectHeapCompactionMode

Eigenschaftswert

Einer der Enumerationswerte, der angibt, ob eine vollständige blockierende Garbage Collection das LOH komprimiert.One of the enumeration values that indicates whether a full blocking garbage collection compacts the LOH.

Hinweise

Der Loh wird zum belegen von Arbeitsspeicher für große Objekte (z. b. Arrays) verwendet, die mehr als 85.000 Bytes benötigen.The LOH is used for allocating memory for large objects (such as arrays) that require more than 85,000 bytes. Aufgrund der Auswirkungen auf die Leistung beim Kopieren großer Speicherblöcke führt der Garbage Collector normalerweise den Loh aus. Dies umfasst das Erstellen einer Liste der Speicherorte, die von inaktiven Objekten belegt wurden und die wieder verwendet werden können, um zukünftige Anforderungen zu erfüllen. Speicher Belegung für große Objekte.Because of the performance impact of copying large blocks of memory, the garbage collector ordinarily sweeps the LOH, which involves creating a list of the memory locations that were occupied by dead objects and that can be reused to satisfy future requests for allocation of memory for large objects. In apps, die den Loh zum Speichern vorübergehender Objekte umfassend verwenden, kann sich die Speicherfragmentierung jedoch auch negativ auf die Leistung auswirken.However, in apps that make extensive use of the LOH to store transient objects, memory fragmentation can also adversely impact performance. In diesem Fall ist es möglich, die LargeObjectHeapCompactionMode -Eigenschaft zu komprimieren, anstatt einfach den Loh während einer Garbage Collection zu löschen.In this case, it is possible to use the LargeObjectHeapCompactionMode property to compact rather than simply sweep the LOH during a garbage collection.

Der Standardwert LargeObjectHeapCompactionMode der-Eigenschaft ist GCLargeObjectHeapCompactionMode.Default. Dies bedeutet, dass der Loh während der Garbage Collection nicht komprimiert wird.The default value of the LargeObjectHeapCompactionMode property is GCLargeObjectHeapCompactionMode.Default, which indicates that the LOH is not compacted during garbage collections. Wenn Sie der-Eigenschaft den Wert GCLargeObjectHeapCompactionMode.CompactOncezuweisen, wird der Loh während der nächsten vollständigen blockierenden Garbage Collection komprimiert, und der-Eigenschafts Wert wird auf GCLargeObjectHeapCompactionMode.Defaultzurückgesetzt.If you assign the property a value of GCLargeObjectHeapCompactionMode.CompactOnce, the LOH is compacted during the next full blocking garbage collection, and the property value is reset to GCLargeObjectHeapCompactionMode.Default.

Hinweis

Garbage Collections im Hintergrund werden nicht blockiert.Background garbage collections are not blocking. Dies bedeutet, dass, wenn Sie die LargeObjectHeapCompactionMode -Eigenschaft GCLargeObjectHeapCompactionMode.CompactOnceauf festlegen, jede Auflistung von 2. Generationen, die danach eintreten, den Loh nicht komprimieren.This means that, if you set the LargeObjectHeapCompactionMode property to GCLargeObjectHeapCompactionMode.CompactOnce, any background generation 2 collections that occur subsequently do not compact the LOH. Nur die erste blockierende Generation 2-Sammlung komprimiert den Loh.Only the first blocking generation 2 collection compacts the LOH.

Nachdem die LargeObjectHeapCompactionMode -Eigenschaft auf GCLargeObjectHeapCompactionMode.CompactOncefestgelegt wurde, wird der nächste vollständige blockierende Garbage Collection (und die Komprimierung des Loh) zu einem unbestimmten zukünftigen Zeitpunkt durchgeführt.After the LargeObjectHeapCompactionMode property is set to GCLargeObjectHeapCompactionMode.CompactOnce, the next full blocking garbage collection (and compaction of the LOH) occurs at an indeterminate future time. Sie können den Loh direkt komprimieren, indem Sie Code wie den folgenden verwenden:You can compact the LOH immediately by using code like the following:

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

Gilt für:

Siehe auch