Встречается на собеседованиях • сегодня
Как работает сборщик мусора (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
интервью вопросы и ответы