C# · Intermediário · Inglês · Técnico
garbage collector
Componente do CLR que libera automaticamente a memória de objetos inalcançáveis no heap gerenciado, organizado em gerações (0, 1 e 2) para tornar as coletas mais rápidas.
Onde usar
Aparece ao investigar picos de latência ou uso de memória alto. Reduzir alocações em caminhos quentes diminui as coletas, e ele não cuida de recursos como conexões e arquivos, que exigem Dispose.
Em código
var o = new object();
Console.WriteLine(GC.GetGeneration(o)); // 0
GC.Collect();
Console.WriteLine(GC.GetGeneration(o)); // 1
GC.KeepAlive(o);Exemplos
The garbage collector is pausing the app too often.
O garbage collector está pausando o app com frequência demais.
Fewer allocations means less work for the garbage collector.
Menos alocações significam menos trabalho para o garbage collector.
Cuidado
Não chame GC.Collect() por conta própria para 'ajudar': isso costuma piorar o desempenho e atrapalhar o ajuste automático do GC.
Sinônimos
GC, coletor de lixo