Back to questions
СБЕР
Senior
2
Как работает сборщик мусора в Python?
Companies where asked
Answer from AI
sobes.tech AI
Сборщик мусора (GC) в Python в основном основан на подсчёте ссылок (reference counting). Каждый объект хранит счётчик ссылок — количество активных ссылок на него. Когда счётчик падает до нуля, объект немедленно удаляется и память освобождается.
Однако подсчёт ссылок не справляется с циклическими ссылками (когда объекты ссылаются друг на друга, но не используются). Для этого в Python есть дополнительный модуль gc, который периодически запускает алгоритм обнаружения циклов и освобождает объекты, участвующие в циклах, если они недостижимы из программы.
Пример:
import gc
# Включить сборщик циклов
gc.enable()
# Запустить сборку вручную
gc.collect()
Таким образом, Python сочетает быстрый подсчёт ссылок для немедленного освобождения и периодический сбор циклических объектов для предотвращения утечек памяти.