GCSettings.LargeObjectHeapCompactionMode Property

[Supported in the .NET Framework 4.5.1 and later versions]

Gets or sets a value that indicates whether a full blocking garbage collection compacts the large object heap (LOH).

Namespace:  System.Runtime
Assembly:  mscorlib (in mscorlib.dll)

Public Shared Property LargeObjectHeapCompactionMode As GCLargeObjectHeapCompactionMode

Property Value

Type: System.Runtime.GCLargeObjectHeapCompactionMode
One of the enumeration values that indicates whether a full blocking garbage collection compacts the LOH.

The default value of the LargeObjectHeapCompactionMode property is GCLargeObjectHeapCompactionMode.Default, which indicates that the LOH is not compacted during garbage collections. 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.


Background garbage collections are not blocking. 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. Only the first blocking generation 2 collection compacts the LOH.

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. You can compact the LOH immediately by using code like the following:

GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce

.NET Framework

Supported in: 4.5.2, 4.5.1
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2014 Microsoft