sys.getsizeof(obj) показывает поверхностный размер объекта в байтах, но обычно не включает объекты, на которые он ссылается. Для полного расхода памяти нужен иной способ измерения.
Как получить размер объекта в байтах?
sys.getsizeof(obj) показывает поверхностный размер объекта в байтах, но обычно не включает объекты, на которые он ссылается. Для полного расхода памяти нужен иной способ измерения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
sys.getsizeof(obj) показывает поверхностный размер объекта в байтах, но обычно не включает объекты, на которые он ссылается. Для полного расхода памяти нужен иной способ измерения.
У списка отдельно существуют его структура и элементы; один элемент также может быть общим для нескольких контейнеров. Простое рекурсивное суммирование без множества посещённых объектов даст двойной счёт или зациклится. Для анализа выделений полезен tracemalloc, а RSS процесса отражает ещё интерпретатор, библиотеки и память аллокатора. Некоторые нативные объекты учитываются инструментами неполно. Поэтому сначала уточните, нужен размер одного объекта, графа данных или реальная память процесса.