Встречается на собеседованиях • сегодня

Как работает сборщик мусора (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()  # принудительный сбор
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы