Sobes.tech
Назад к вопросам
Senior
3

Как работает сборщик мусора в Python?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

Сборщик мусора (GC) в Python в основном основан на подсчёте ссылок (reference counting). Каждый объект хранит счётчик ссылок — количество активных ссылок на него. Когда счётчик падает до нуля, объект немедленно удаляется и память освобождается.

Однако подсчёт ссылок не справляется с циклическими ссылками (когда объекты ссылаются друг на друга, но не используются). Для этого в Python есть дополнительный модуль gc, который периодически запускает алгоритм обнаружения циклов и освобождает объекты, участвующие в циклах, если они недостижимы из программы.

Пример:

import gc

# Включить сборщик циклов
gc.enable()

# Запустить сборку вручную
gc.collect()

Таким образом, Python сочетает быстрый подсчёт ссылок для немедленного освобождения и периодический сбор циклических объектов для предотвращения утечек памяти.