У меня были те же проблемы с guppy/heapy. В настоящее время Guppy немного устарел. Есть какой-то патч, но я больше не могу его найти. Однако это не сработало для меня в python 2.7. У вас также могут возникнуть проблемы из-за OS-арки (64 бит !?).
Есть другие вопросы о памяти профилирование методов:
Я лично считаю, что наиболее ценные альтернативы:
Полезно также для расчета размера ваших объектов и отслеживать его самостоятельно. Я разработал код (первоначально https://stackoverflow.com/users/216356/noctis-skytower), что я нашел в одном из StackOverflow вопросов (Approximately how much memory would a list of 80000 items consume in python?), чтобы быть совместимым с Python 2.7 (должен работать в 3 и):
totalSizeOf = lambda obj: sum(map(sys.getsizeof, explore(obj, set())))
def explore(obj, memo):
loc = id(obj)
if loc not in memo:
memo.add(loc)
yield obj
# Handle instances with slots.
try:
slots = obj.__slots__
except AttributeError:
pass
else:
for name in slots:
try:
attr = getattr(obj, name)
except AttributeError:
pass
else:
#yield from explore(attr, memo)
for bar in explore(attr, memo):
yield bar
# Handle instances with dict.
try:
attrs = obj.__dict__
except AttributeError:
pass
else:
#yield from explore(attrs, memo)
for bar in explore(attrs, memo):
yield bar
# Handle dicts or iterables.
for name in 'keys', 'values', '__iter__':
try:
attr = getattr(obj, name)
except AttributeError:
pass
else:
for item in attr():
#yield from explore(item, memo)
for bar in explore(item, memo):
yield bar