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

Расскажи про две версии сборщика мусора (Garbage collector) в Python

В Python используется два механизма сборки мусора:

  1. Reference Counting
    Основной механизм, подсчитывающий ссылки на объекты. Когда счетчик достигает нуля, память освобождается немедленно.
    python
    import sys
    a = []
    print(sys.getrefcount(a))  # 2 (временная ссылка в getrefcount)
    b = a
    print(sys.getrefcount(a))  # 3
    del b
    print(sys.getrefcount(a))  # 2
  1. Generational Garbage Collector (GC)
    Дополнительный механизм для обнаружения циклических ссылок (когда объекты ссылаются друг на друга, но внешних ссылок нет). Работает в трех поколениях (0, 1, 2), проверяя молодые объекты чаще.
    python
    import gc
    gc.enable()  # Включен по умолчанию
    gc.collect()  # Принудительный запуск

Нюансы:

  • Reference Counting быстрый, но не ловит циклы.
  • Generational GC добавляет накладные расходы, но решает проблему циклов.
  • Можно управлять через модуль gc (отключение, настройка порогов).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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