ExpertiDict

C# · Avançado · Inglês · Técnico

large object heap

/lɑrdʒ ˈɑbdʒɛkt hip/substantivo

Região do heap gerenciado para objetos de 85.000 bytes ou mais, coletada junto com a geração 2. Por padrão não é compactada, o que pode causar fragmentação.

Onde usar

Aparece ao investigar uso de memória alto ou pausas longas do GC com muitos arrays e strings grandes. Reutilizar buffers com ArrayPool evita encher o LOH com alocações de vida curta.

Em código

var p = new byte[84_000];
var g = new byte[85_000];
Console.WriteLine(GC.GetGeneration(p)); // 0
Console.WriteLine(GC.GetGeneration(g)); // 2

Exemplos

Those big arrays are landing on the large object heap.

Esses arrays grandes estão caindo no large object heap.

The LOH is only collected in gen 2.

O LOH só é coletado na geração 2.

Cuidado

Não crie arrays grandes temporários em laço: cada um vai ao LOH e só sai em coletas completas, que são mais caras.

Sinônimos

LOH

Veja também

Todos os termos de C#