Встречается на 4% собеседований по Python
Как работает сборщик мусора (Garbage Collector) в Python
В Python используется алгоритм подсчёта ссылок (reference counting) + generational garbage collection для обнаружения циклических ссылок.
Reference counting:
- Каждый объект хранит счётчик ссылок на него
- При создании объекта счетчик = 1
- При добавлении новой ссылки счетчик увеличивается
- При удалении ссылки - уменьшается
- Когда счетчик достигает 0, память освобождается
Пример:
python
a = [1, 2, 3] # refcount = 1
b = a # refcount = 2
del a # refcount = 1
b = None # refcount = 0 -> память освобожденаGenerational GC:
- Обнаруживает циклические ссылки (когда refcount никогда не станет 0)
- Работает в 3 поколениях (0 - новые объекты, 2 - старые)
- Чаще проверяет молодые объекты
- Использует алгоритм mark-and-sweep
GC можно контролировать через модуль gc:
python
import gc
gc.disable() # отключить сборщик
gc.collect() # принудительный сбор
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы