Я ищу документы, которые подробно описывают, как работает сборка мусора python.
Мне интересно, что делается на каком этапе. Какие предметы входят в эти 3 коллекции? Какие объекты удаляются на каждом шаге? Какой алгоритм используется для поиска референсных циклов?
Предыстория: я выполняю несколько поисковых запросов, которые должны завершиться за небольшой промежуток времени. Когда сборщик мусора начинает собирать самое старое поколение, он «намного» медленнее, чем в других случаях. На поиски ушло больше времени, чем положено. Я смотрю, как предсказать, когда оно соберет старшее поколение и сколько времени это займет.
Легко предсказать, когда он соберет старшее поколение с помощью get_count()
и get_threshold()
. Этим также можно манипулировать set_threshold()
. Но я не вижу, насколько легко решить, что лучше сделать collect()
силой или дождаться планового сбора.
источник