Документация сборщика мусора Python

Я ищу документы, которые подробно описывают, как работает сборка мусора python.

Мне интересно, что делается на этом этапе. Какие объекты находятся в этих трех коллекциях? Какие объекты удаляются на каждом шаге? Какой алгоритм используется для поиска опорных циклов?

Справочная информация. Я выполняю некоторые поисковые запросы, которые нужно выполнить за небольшую сумму времени. Когда сборщик мусора начинает собирать старейшее поколение, он "намного" медленнее, чем в других случаях. Это заняло больше времени, чем предназначено для поиска. Я смотрю, как предсказать, когда он соберет самое старое поколение и сколько времени это займет.

Легко предсказать, когда он будет собирать старое поколение с get_count() и get_threshold(). С этим также можно управлять с помощью set_threshold(). Но я не понимаю, как легко решить, лучше ли сделать collect() силой или дождаться запланированной коллекции.

Ответ 1

Нет никакого определенного ресурса о том, как Python делает свою сборку мусора (кроме самого исходного кода), но эти 3 ссылки должны дать вам неплохую идею.

Update

Источник на самом деле очень полезен. Насколько вы выходите из этого, зависит от того, насколько хорошо вы читаете C, но комментарии на самом деле очень полезны. Перейдите к collect() function в https://github.com/python/cpython/blob/master/Modules/gcmodule.c и комментарии хорошо объясняют процесс (хотя и в очень технических терминах).