Large Object Heap Compaction, quando é bom?
Primeiro, quão grande é considerado grande? Existe alguma maneira de determinar o tamanho de um objeto no heap?
.Net 4.5.1 vem com esteLargeObjectHeapCompactionMode
:
Depois que a propriedade LargeObjectHeapCompactionMode é definida como GCLargeObjectHeapCompactionMode.CompactOnce, a próxima coleta de lixo de bloqueio completo (e compactação do LOH) ocorre em um horário futuro indeterminado. Você pode compactar o LOH imediatamente usando código como o seguinte:
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
GC.Collect();
Pelo que ouvi, é ruim compactar o LOH! Então, qual é o pior? LOH compacto ou com fragmentação LOH?