gc — contrôle du ramasse-miettes

Ce module fournit une interface vers le ramasse-miettes du tas : activation ou désactivation de la collecte automatique, déclenchement d’une collecte immédiate, interrogation de la quantité de mémoire de tas allouée et libre, et ajustement du seuil d’allocation qui déclenche une collecte.

Fonctions

gc.enable() None

Active le ramasse-miettes automatique.

gc.disable() None

Désactive le ramasse-miettes automatique. La mémoire de tas peut toujours être allouée, et le ramasse-miettes peut toujours être déclenché manuellement à l’aide de gc.collect().

gc.collect() None

Exécute un ramassage des miettes.

gc.mem_alloc() int

Renvoie le nombre d’octets de RAM de tas alloués par le code Python.

Différence avec CPython

Cette fonction est une extension de MicroPython.

gc.mem_free() int

Renvoie le nombre d’octets de RAM de tas disponibles pour l’allocation par le code Python, ou -1 si cette quantité n’est pas connue.

Différence avec CPython

Cette fonction est une extension de MicroPython.

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

Définit ou interroge le seuil d’allocation GC supplémentaire. Normalement, une collecte n’est déclenchée que lorsqu’une nouvelle allocation ne peut être satisfaite, c’est-à-dire lors d’une condition de mémoire insuffisante (OOM). Si cette fonction est appelée, en plus de l’OOM, une collecte sera déclenchée chaque fois qu’un total de amount octets a été alloué (au total, depuis la dernière fois qu’une telle quantité d’octets a été allouée). amount est généralement spécifié comme inférieur à la taille totale du tas, dans l’intention de déclencher une collecte plus tôt que lorsque le tas devient épuisé, et dans l’espoir qu’une collecte précoce empêchera une fragmentation excessive de la mémoire. Il s’agit d’une mesure heuristique, dont l’effet variera d’une application à l’autre, tout comme la valeur optimale du paramètre amount.

Appeler la fonction sans argument renverra la valeur actuelle du seuil. Une valeur de -1 signifie un seuil d’allocation désactivé.

Différence avec CPython

Cette fonction est une extension de MicroPython. CPython possède une fonction similaire - set_threshold(), mais en raison d’implémentations GC différentes, sa signature et sa sémantique sont différentes.