Как устроена память в Python

Python Junior Без компании
Как устроена память в Python
Ответы
В Python управление памятью осуществляется через private heap (кучу), где хранятся все объекты. Менеджер памяти автоматически выделяет и освобождает память с помощью механизма подсчёта ссылок (reference counting) и сборщика мусора (garbage collector). **Ключевые аспекты:** - **Reference Counting** – каждый объект содержит счётчик ссылок. Когда он достигает нуля, память освобождается. - **Garbage Collector** – решает проблему циклических ссылок (когда объекты ссылаются друг на друга, но внешних ссылок нет). - **Memory Pools** – Python использует пулы для оптимизации выделения памяти под мелкие объекты (например, int, str). **Пример:** ``` import sys a = [1, 2, 3] # Создаётся объект списка в куче b = a # Увеличивается счётчик ссылок объекта print(sys.getrefcount(a)) # Выведет 3 (a, b + временная ссылка в getrefcount) del b # Счётчик уменьшается ```