Ich suche nach Dokumenten, die detailliert beschreiben, wie die Python-Garbage Collection funktioniert.
Mich interessiert, was in welchem Schritt gemacht wird. Welche Objekte befinden sich in diesen 3 Sammlungen? Welche Arten von Objekten werden in jedem Schritt gelöscht? Welcher Algorithmus wird zum Auffinden von Referenzzyklen verwendet?
Hintergrund: Ich implementiere einige Suchvorgänge, die in kurzer Zeit abgeschlossen sein müssen. Wenn der Garbage Collector mit dem Sammeln der ältesten Generation beginnt, ist er "viel" langsamer als in anderen Fällen. Es hat mehr Zeit in Anspruch genommen, als für die Suche vorgesehen ist. Ich suche, wie ich vorhersagen kann, wann die älteste Generation gesammelt wird und wie lange es dauern wird.
Es ist leicht vorherzusagen, wann die älteste Generation mit get_count()
und gesammelt wird get_threshold()
. Das kann auch mit manipuliert werden set_threshold()
. Aber ich sehe nicht, wie einfach es ist, sich zu entscheiden, ob es besser ist, collect()
mit Gewalt zu entscheiden oder auf die geplante Abholung zu warten.