Как работает память процесса
Python
Senior
Без компании
Как работает память процесса
Ответы
В Python память процесса управляется интерпретатором и делится на несколько областей:
- **Стек (Stack)** — хранит локальные переменные и вызовы функций (LIFO).
- **Куча (Heap)** — динамическая память для объектов (управляется сборщиком мусора).
- **Сегмент данных** — глобальные и статические переменные.
**Пример:**
```
def func():
x = 10 # Локальная переменная (стек)
y = [1, 2, 3] # Объект в куче
func() # После вызова 'x' удаляется, 'y' может остаться, если есть ссылки
```
**Особенности:**
- **Сборка мусора (GC)** автоматически освобождает неиспользуемые объекты из кучи.
- **Неизменяемые типы** (int, str, tuple) кэшируются и переиспользуются.
- **Изменяемые объекты** (list, dict) создаются в куче.
Для управления памятью можно использовать `sys.getsizeof()` или `gc` модуль.