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

Какие знаешь механизмы в Garbage Collector

В Python используется автоматическое управление памятью с помощью подсчёта ссылок и циклического сборщика мусора (Generational GC).

1. Подсчёт ссылок
Каждый объект хранит счётчик ссылок. При создании объекта счётчик = 1. При новой ссылке — увеличивается, при удалении — уменьшается. Когда счётчик достигает 0, память освобождается.

2. Generational GC
Для обнаружения циклических ссылок (когда объекты ссылаются друг на друга, но внешних ссылок нет) используется generational GC. Объекты делятся на 3 поколения (0, 1, 2). Новые объекты попадают в поколение 0. Если они выживают после сборки, переходят в следующее поколение.

Пример циклической ссылки:

python
a = []
b = [a]
a.append(b)  # Теперь a и b ссылаются друг на друга
del a, b     # Внешних ссылок нет, но подсчёт ссылок не поможет

Generational GC найдёт и удалит такие объекты.

Вызов GC вручную:

python
import gc
gc.collect()  # Принудительная сборка мусора
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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