Documentatie voor Python-afvalverzamelaars

| | | | | | | | | | |

Ik ben op zoek naar documenten die in detail beschrijven hoe python garbage collection werkt.

Ik ben geïnteresseerd in wat er in welke stap wordt gedaan. Welke objecten zitten in deze 3 collecties? Welke soorten objecten worden in elke stap verwijderd? Welk algoritme wordt gebruikt voor het vinden van referentiecycli?

Achtergrond: ik implementeer een aantal zoekopdrachten die in een korte tijd moeten worden voltooid. Wanneer de vuilnisman begint met het verzamelen van de oudste generatie, is het "veel" langzamer dan in andere gevallen. Het kostte meer tijd dan de bedoeling was voor zoekopdrachten. Ik ben aan het kijken hoe ik kan voorspellen wanneer het de oudste generatie zal verzamelen en hoe lang het zal duren.

Het is gemakkelijk te voorspellen wanneer het verzamelt de oudste generatie met get_count() en get_threshold(). Dat kan ook worden gemanipuleerd met set_threshold(). Maar ik zie niet in hoe gemakkelijk het is om te beslissen of het beter is om collect() met geweld uit te voeren of te wachten op de geplande ophaling.