Sobes.tech
Junior — Middle

Explique o princípio de funcionamento do coletor de lixo em um sistema de gerenciamento de memória automática.

sobes.tech IA

Resposta da IA

O Garbage Collector (GC) em C# gere automaticamente a memória, libertando objetos que não são mais utilizados pelo programa.

Princípio de funcionamento:

  • Acompanhamento de referências: O GC verifica periodicamente quais objetos no heap gerenciado estão acessíveis através de referências do código ativo.
  • Detecção de objetos inacessíveis: Objetos sem referências são considerados inacessíveis e podem ser removidos.
  • Gerações: Os objetos são divididos em gerações (0, 1, 2) para otimizar. Objetos novos estão na geração 0. Se um objeto vive muito tempo, é promovido para gerações superiores.
  • Coleta de lixo: O GC libera memória removendo objetos inacessíveis e compacta o heap para reduzir a fragmentação.

Exemplo:

class Program
{
    static void Main()
    {
        var obj = new object(); // objeto no heap
        obj = null; // objeto torna-se inacessível
        GC.Collect(); // chamada forçada ao coletor de lixo
    }
}

Assim, o desenvolvedor não precisa liberar a memória manualmente, o que reduz erros relacionados à gestão de memória.