🗣3 факта об использовании памяти в Python, о которых вы не знали
Поскольку Python является основным языком программирования в задачах Data Science, каждому DS-специалисту пригодятся следующие особенности этого инструмента:
• Получение адреса объекта в памяти - для этого Python использует функция id(), которая возвращать адрес памяти для переменной в виде целого числа.
• Сборка мусора - Python использует метод подсчета ссылок, чтобы решить, когда объект должен быть удален из памяти. Python вычисляет количество ссылок на каждый объект, и когда объект не имеет ссылки, запускается Garbage Collection. Для сложных случаев, можно вручную изменить поведение сборки мусора с помощью модуля gc в Python.
• Интернирование или целочисленное кэширование - чтобы сэкономить время и затраты на память, Python всегда предварительно загружает все целые числа в диапазоне [-5, 256]. Когда объявляется новая целочисленная переменная в этом диапазоне, Python просто ссылается на нее кэшированное целое число и не создает никаких новых объектов. Поэтому независимо от того, сколько переменных было создано, если они относятся к целому числу 256 в диапазоне [-5, 256], все они будут указывать на один и тот же адрес памяти кэшированного целого числа. Аналогично в Python есть механизмы интернирования для коротких строк.
https://medium.com/techtofreedom/memory-management-in-python-3-popular-interview-questions-bce4bc69b69a
Post #111
529