Сжатие кучи больших объектов, когда это хорошо?
Во-первых, насколько большой считается большим? Есть ли способ определить, насколько большой объект находится в куче?
.Net 4.5.1 поставляется с этимLargeObjectHeapCompactionMode
:
После того, как свойство LargeObjectHeapCompactionMode установлено в GCLargeObjectHeapCompactionMode.CompactOnce, следующая полная сборка мусора (и сжатие LOH) происходит в неопределенное время в будущем. Вы можете сразу сжать LOH, используя следующий код:
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
GC.Collect();
Из того, что я слышал, плохо сжимать LOH! Итак, какой из них хуже? Компактный LOH или имеющий фрагментацию LOH?