Sobes.tech
Назад к вопросам
Middle
2

Что такое Garbage Collector в Python и как он работает?

Компании, где спрашивали
ГК АСК

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

sobes.tech AI

Garbage Collector (GC) в Python — это механизм автоматического управления памятью, который освобождает память, занятую объектами, которые больше не используются программой.

Python использует несколько методов для этого:

  1. Подсчет ссылок (reference counting): каждый объект хранит счетчик ссылок — количество переменных или других объектов, которые ссылаются на него. Когда счетчик падает до нуля, объект сразу удаляется.

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

Пример:

import gc

class A:
    def __init__(self):
        self.ref = None

# Создаем циклическую ссылку
obj1 = A()
obj2 = A()
obj1.ref = obj2
obj2.ref = obj1

# Удаляем внешние ссылки
del obj1
del obj2

# Циклический сборщик освободит память
gc.collect()

Таким образом, Garbage Collector помогает избежать утечек памяти и освобождает программиста от необходимости вручную управлять памятью.