Je recherche des documents qui décrivent en détail le fonctionnement du garbage collection en python.
Ce qui m'intéresse, c'est de savoir ce qui est fait à chaque étape. Quels objets se trouvent dans ces trois collections ? Quels types d'objets sont supprimés à chaque étape ? Quel algorithme est utilisé pour la recherche des cycles de référence ?
Contexte : Je suis en train de mettre en place des recherches qui doivent être terminées en peu de temps. Lorsque le ramasse-miettes commence à collecter la génération la plus ancienne, il est "beaucoup" plus lent que dans les autres cas. Cela prend plus de temps que ce qui est prévu pour les recherches. Je cherche à savoir comment prédire quand le ramasse-miettes va collecter la génération la plus ancienne et combien de temps cela va prendre.
Il est facile de prévoir quand elle collectera la génération la plus âgée avec get_count()
y get_threshold()
. Cela peut également être manipulé avec set_threshold()
. Mais je ne vois pas en quoi il est facile de décider s'il vaut mieux faire collect()
par la force ou attendre la collecte programmée.