Dokumentacja odśmiecacza Pythona

| | | | | | | | | | |

Szukam dokumentów, które szczegółowo opisują, jak działa python garbage collection.

Interesuje mnie, co zostało zrobione na jakim etapie. Jakie przedmioty znajdują się w tych 3 kolekcjach? Jakie rodzaje obiektów są usuwane na każdym etapie? Jaki algorytm jest używany do znajdowania cykli referencyjnych?

Tło: wdrażam pewne wyszukiwania, które muszą zakończyć się w krótkim czasie. Kiedy garbage collector zaczyna zbierać najstarszą generację, jest "znacznie" wolniejszy niż w innych przypadkach. Zajęło to więcej czasu niż jest przeznaczone na wyszukiwanie. Szukam, jak przewidzieć, kiedy zbierze najstarsze pokolenie i jak długo to zajmie.

Łatwo przewidzieć, kiedy zbierze najstarszą generację za pomocą get_count() i get_threshold(). Można to również manipulować za pomocą set_threshold(). Ale nie rozumiem, jak łatwo zdecydować, czy lepiej użyć metody collect() na siłę, czy poczekać na zaplanowane pobranie.