Je recherche des documents décrivant en détail le fonctionnement de la collecte des ordures en python.
Je suis intéressé par ce qui est fait à quelle étape. Quels objets sont dans ces 3 collections? Quels types d'objets sont supprimés à chaque étape? Quel algorithme est utilisé pour la recherche de cycles de référence?
Contexte: j'implémente des recherches qui doivent se terminer en peu de temps. Lorsque le garbage collector commence à collecter la génération la plus ancienne, il est "beaucoup" plus lent que dans d'autres cas. Il a fallu plus de temps que prévu pour les recherches. Je cherche comment prédire quand il rassemblera la génération la plus ancienne et combien de temps cela prendra.
Il est facile de prédire quand il rassemblera la génération la plus ancienne avec get_count()
et get_threshold()
. Cela peut également être manipulé avec set_threshold()
. Mais je ne vois pas à quel point il est facile de décider s'il vaut mieux faire collect()
de force ou attendre la collecte programmée.