CPython libera muitos objetos pela contagem de referências. O módulo gc complementa esse mecanismo detectando ciclos, como dois objetos que mantêm referências entre si e se tornam inacessíveis.

Exemplo prático

import gc

before = gc.get_count()
unreachable = gc.collect()
after = gc.get_count()

print("collections counters:", before, "->", after)
print("unreachable objects:", unreachable)

O que os contadores mostram

get_count() expõe contagens internas desde as últimas coletas por geração. Esses números não são consumo de memória. Use get_stats() para estatísticas e ferramentas como tracemalloc para rastrear alocações.

Diagnóstico sem alterar produção

Ative gc.DEBUG_SAVEALL apenas em um ambiente controlado: ele mantém objetos encontrados em gc.garbage e pode aumentar a memória. Remova referências criadas pelo próprio diagnóstico.

Quando ajustar o coletor

Desabilitar ou mudar limites pode reduzir pausas em cargas específicas, mas também adia a liberação de ciclos. Meça latência e memória no processo real antes de adotar essa intervenção.

Continue estudando

Aprofunde a base com logging em Python. A documentação oficial do Python, consultada em 22 de julho de 2026, detalha a API, as limitações e as diferenças entre versões.