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

| | | | | | | | | | |

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

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

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

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