CPython libera muchos objetos mediante conteo de referencias. El módulo gc complementa ese mecanismo al detectar ciclos, como dos objetos inaccesibles que todavía se referencian entre sí.
Ejemplo práctico
import gc
before = gc.get_count()
unreachable = gc.collect()
after = gc.get_count()
print("collections counters:", before, "->", after)
print("unreachable objects:", unreachable)
Qué indican los contadores
get_count() expone contadores internos desde las últimas recolecciones por generación. No representan uso de memoria. Usa get_stats() para estadísticas y tracemalloc para rastrear asignaciones.
Diagnostica sin alterar producción
Activa gc.DEBUG_SAVEALL solo en un entorno controlado: conserva objetos en gc.garbage y puede aumentar la memoria. Elimina también las referencias creadas por la investigación.
Cuándo ajustar el recolector
Desactivarlo o cambiar umbrales puede reducir pausas en una carga específica, pero retrasa la liberación de ciclos. Mide latencia y memoria en el proceso real antes de intervenir.
Sigue aprendiendo
Refuerza la base con logging en Python. A documentación oficial de Python, consultada el 22 de julio de 2026, detalla la API, las limitaciones y las diferencias entre versiones.