Sobes.tech
Back to questions
Senior
2

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

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

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

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

Пример:

import gc

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

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

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