Python-Garbage-Collector-Dokumentation

| | | | | | | | | | |

Ich suche nach Dokumenten, die detailliert beschreiben, wie 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 Finden von Referenzzyklen verwendet?

Hintergrund: Ich implementiere einige Suchen, die in kurzer Zeit abgeschlossen werden müssen. Wenn der Garbage Collector beginnt, die älteste Generation zu sammeln, ist er "viel" langsamer als in anderen Fällen. Die Suche dauerte länger als vorgesehen. Ich suche, wie ich vorhersagen kann, wann die älteste Generation gesammelt wird und wie lange es dauern wird.

Es ist leicht vorherzusagen, wann dies der Fall ist sammelt die älteste Generation mit get_count() und get_threshold(). Auch das kann mit set_threshold() manipuliert werden. Aber ich sehe nicht, wie einfach zu entscheiden ist, ob es besser ist, collect() mit Gewalt zu machen oder auf die geplante Sammlung zu warten.