Зачем нужен сборщик мусора (Garbage Collector)
Python
Middle
Без компании
Зачем нужен сборщик мусора (Garbage Collector)
Ответы
Сборщик мусора (GC) автоматически освобождает память, занятую объектами, которые больше не используются в программе. Это избавляет разработчика от ручного управления памятью, предотвращая утечки и ошибки.
**Основные преимущества:**
- Упрощает код — не нужно вызывать `free`/`delete` как в C/C++.
- Предотвращает утечки памяти.
- Избегает висячих ссылок (dangling pointers).
**Пример утечки без GC:**
```
# Без GC (гипотетически)
obj = create_object()
obj = None # Старый объект остался в памяти
```
**Как работает в Python:**
Использует подсчёт ссылок + generational GC для обнаружения циклических ссылок:
```
a = []
b = [a]
a.append(b) # Циклическая ссылка
# Без GC эти объекты никогда не удалились бы
```
**Минусы:**
- Накладные расходы на работу GC.
- Не всегда предсказуемое время освобождения памяти.