Sobes.tech
Junior — Middle

Como é implementada a recolha automática de lixo nas linguagens de programação?

sobes.tech IA

Resposta da IA

A recolha automática de lixo (Garbage Collection, GC) é um mecanismo de gestão de memória que liberta automaticamente a memória ocupada por objetos que já não são utilizados pelo programa.

Principais abordagens de implementação do GC:

  1. Contagem de referências (Reference Counting) — a cada objeto é atribuído um contador de referências. Quando o contador chega a zero, o objeto é eliminado. Desvantagem — não funciona com referências cíclicas.

  2. Marcação e varredura (Mark-and-Sweep) — o GC marca primeiro todos os objetos acessíveis, depois limpa todos os não marcados, considerando-os lixo.

  3. Cópia (Copying Collector) — a memória é dividida em duas áreas, os objetos ativos são copiados de uma área para outra, libertando a antiga.

  4. GC generacional (Generational GC) — os objetos são divididos em gerações de acordo com o tempo de vida, limpando com maior frequência a geração jovem, o que aumenta a eficiência.

Por exemplo, no Android, é utilizado Dalvik/ART com GC generacional, que funciona em segundo plano, minimizando atrasos e prevenindo fugas de memória.