Как точно измерить использование памяти и почему pympler так отличается от sys.getsizeof?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как точно измерить использование памяти и почему pympler так отличается от sys.getsizeof?

Сообщение Anonymous »

Я хочу измерить использование оперативной памяти структурой данных. Но разные методы дают разные ответы. Вот MWE:

Код: Выделить всё

from pympler import asizeof
from gc import get_referents
import numpy as np
import sys

def getsize(obj):
"""sum size of object & members."""
seen_ids = set()
size = 0
objects = [obj]
while objects:
need_referents = []
for obj in objects:
if  id(obj) not in seen_ids:
seen_ids.add(id(obj))
size += sys.getsizeof(obj)
need_referents.append(obj)
objects = get_referents(*need_referents)
return size

my_set8 = {np.uint8(x) for x in range(256)}
my_set16 = {np.uint16(x) for x in range(65536)}
print(f"{asizeof.asizeof(my_set8)=}")
print(f"{getsize(my_set8)=}")
print(f"{asizeof.asizeof(my_set16)=}")
print(f"{getsize(my_set16)=}")
Это дает:

Код: Выделить всё

asizeof.asizeof(my_set8)=16616
getsize(my_set8)=14808
asizeof.asizeof(my_set16)=4194536
getsize(my_set16)=3801304
Чем объясняется большая разница между измерениями и какой из них верен?

Подробнее здесь: https://stackoverflow.com/questions/792 ... t-from-sys
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»