gc — control del recolector de basura

Este módulo proporciona una interfaz para el recolector de basura del montón: habilitar o deshabilitar la recolección automática, forzar una recolección inmediata, consultar la cantidad de memoria del montón asignada y libre, y ajustar el umbral de asignación que desencadena la recolección.

Funciones

gc.enable() None

Habilita la recolección de basura automática.

gc.disable() None

Deshabilita la recolección de basura automática. Aún se puede asignar memoria del montón, y la recolección de basura todavía puede iniciarse manualmente con gc.collect().

gc.collect() None

Ejecuta una recolección de basura.

gc.mem_alloc() int

Devuelve el número de bytes de RAM del montón que el código Python tiene asignados.

Diferencia con CPython

Esta función es una extensión de MicroPython.

gc.mem_free() int

Devuelve el número de bytes de RAM del montón disponibles para que el código Python los asigne, o -1 si esta cantidad no se conoce.

Diferencia con CPython

Esta función es una extensión de MicroPython.

gc.threshold(amount: int | None = None) int | None

Establece o consulta el umbral adicional de asignación del GC. Normalmente, una recolección se desencadena solo cuando no se puede satisfacer una nueva asignación, es decir, en una condición de falta de memoria (OOM). Si se llama a esta función, además de en caso de OOM, se desencadenará una recolección cada vez que se hayan asignado amount bytes (en total, desde la vez anterior en que se asignó dicha cantidad de bytes). amount se especifica normalmente como un valor menor que el tamaño total del montón, con la intención de desencadenar una recolección antes de que el montón se agote, y con la esperanza de que una recolección temprana evite una fragmentación excesiva de la memoria. Es una medida heurística cuyo efecto variará de una aplicación a otra, al igual que el valor óptimo del parámetro amount.

Llamar a la función sin argumento devolverá el valor actual del umbral. Un valor de -1 significa que el umbral de asignación está deshabilitado.

Diferencia con CPython

Esta función es una extensión de MicroPython. CPython tiene una función similar, set_threshold(), pero debido a las distintas implementaciones del GC, su firma y semántica son diferentes.