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.