C#大对象堆压缩

示例

默认情况下,大对象堆是没有什么不同的经典对象堆可导致内存碎片,并进一步压缩,会导致OutOfMemoryException小号

从.NET 4.5.1开始,有一个选项可以显式压缩大对象堆(以及垃圾回收):

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

就像任何显式垃圾回收请求(之所以称为请求,是因为CLR不会强制执行该请求)一样,请谨慎使用,并且默认情况下请尽量避免使用它,因为它可以取消GC统计信息的校准,从而降低其性能。