Asizeof кажется неточнымPython

Программы на Python
Ответить
Anonymous
 Asizeof кажется неточным

Сообщение Anonymous »

Возьмите этот MWE:

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

from pympler import asizeof
from random import randint, choice
from string import printable
from heapq import heappush
ascii =  printable[:-5]
pq = []
for _ in range(10_000_000):
heappush(pq, (randint(0, 31), randint(0, 31), randint(0, 31), ''.join(choice(ascii) for _ in range(16))))
print(asizeof.asizeof(pq))
При запуске «top» я вижу, что для этого требуется около 2,7 ГБ ОЗУ. Но asizeof сообщает о 1 449 096 184 байтах, а это далеко не так.
Вот что показывает «top»:
Изображение

/usr/bin/time -v дает:

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

Maximum resident set size (kbytes): 2858616
Я использую это неправильно?

Подробнее здесь: https://stackoverflow.com/questions/792 ... inaccurate
Ответить

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

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

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

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

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