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.