大对象堆压缩

默认情况下,大型对象堆不会像经典的对象堆那样被压缩,这可能导致内存碎片, 并且可能导致 OutOfMemoryExceptions

从 .NET 4.5.1 开始,有一个选项可以显式压缩 Large Object Heap(以及垃圾收集):

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

正如任何显式的垃圾收集请求(它被称为请求,因为 CLR 不被强制执行它)一样小心使用并且默认情况下避免使用它,因为它可以去除校准 GCs 统计数据,从而降低其性能。