Как очищается память в Python
Python
Middle
Без компании
Как очищается память в Python
Ответы
В Python используется автоматическое управление памятью через механизм подсчёта ссылок и сборщик мусора (GC).
**Основные принципы:**
- **Подсчёт ссылок** - объект удаляется, когда количество ссылок на него становится нулём
- **Циклический сборщик мусора** - обнаруживает и удаляет циклические ссылки
- **Поколения объектов** - GC делит объекты на 3 поколения для оптимизации
**Пример:**
```
import sys
import gc
# Создаём объект
x = [1, 2, 3]
print(sys.getrefcount(x)) # Выведет 2 (1 ссылка + временная в getrefcount)
# Удаляем ссылку
del x
# Теперь память может быть освобождена
# Принудительный вызов сборщика
gc.collect()
```
**Важно:** Не рекомендуется часто вызывать `gc.collect()` вручную, так как Python эффективно управляет памятью самостоятельно. Исключение - работа с большими объектами или освобождение памяти в долгоживущих процессах.