Le module gc n'est disponible que si l'interpréteur a été construit avec l'option détection cyclique de miettes (c'est l'option par défaut). Sinon, une ImportError est déclenchée si on essaie d'importer ce module.
Ce module fournit une interface vers le ramasse-miettes optionnel. Il
permet de désactiver le ramasse-miettes, de régler la fréquence de
ramassage, et de définir les options de débogage. Il procure également
un accès aux objets inaccessibles, que le ramasseur a trouvés mais ne
peut pas libérer. Puisque le ramasse-miettes vient en complément du compteur de références
déjà utilisé par Python, vous pouvez le désactiver si vous
êtes sûr que votre programme ne crée pas de cycles de références. Le
ramassage automatique peut être désactivé en appelantgc.disable().
Pour déboguer un programme qui a des fuites mémoire, appelez
gc.set_debug(gc.DEBUG_LEAK).
Le module gc fournit les fonctions suivantes:
sys.stderr.
Voir ci-dessous une liste des indicateurs de débogage qui peuvent être
combinés en utilisant des opérations binaires pour contrôler
le débogage.
Le ramasse-miettes classe les objets en trois générations selon le
nombre d'opérations de ramassage auxquelles ils ont survécu. Les nouveaux
objets sont placés dans la génération la plus jeune (génération 0).
Si un objet survit à un ramassage, il est déplacé dans la génération plus
vieille d'un cran. Comme la génération 2 est la plus vieille, les
objets dans cette génération y restent après un ramassage. Pour décider
quand il doit s'exécuter, le ramasseur garde une trace du nombre d'objets
alloués et désalloués depuis le dernier ramassage. Quand le nombre d'allocations
moins le nombre de désallocations dépasse seuil0, le ramassage commence.
Au départ, seule la génération 0 est examinée. Si la génération 0
a été examinée plus de seuil1 fois depuis que la génération 1 a été
examinée, alors la génération 1 est aussi examinée. De même,
seuil2 contrôle le nombre de ramassages de la génération
1 avant de ramasser la génération 2.
(seuil0, seuil1, seuil2).
La variable suivante est fournie, en lecture seule:
Les constantes suivantes sont fournies pour une utilisation avec set_debug():
garbage.
DEBUG_COLLECTABLE |
DEBUG_UNCOLLECTABLE | DEBUG_INSTANCES | DEBUG_OBJECTS | DEBUG_SAVEALL).