Мне интересно узнать об увеличении общего размера кучи python при загрузке большого объекта. heapy, кажется, то, что мне нужно, но я не понимаю результатов.Измерение увеличения размера кучи после загрузки большого объекта
У меня есть файл соленья 350 МБ с пандами DataFrame
, в котором содержится около 2,5 миллионов записей. Когда я загружаю файл и потом проверяю кучу с heapy, он сообщает, что в кучу добавлено только около 8 МБ объектов.
import guppy
h = guppy.hpy()
h.setrelheap()
df = pickle.load(open('test-df.pickle'))
h.heap()
Это дает следующий результат:
Partition of a set of 95278 objects. Total size = 8694448 bytes.
Index Count % Size % Cumulative % Kind (class/dict of class)
0 44700 47 4445944 51 4445944 51 str
1 25595 27 1056560 12 5502504 63 tuple
2 6935 7 499320 6 6001824 69 types.CodeType
...
Что меня смущает является Total size
из 8694448 bytes
. Это всего лишь 8 МБ.
Почему Total size
не отражает размер целого DataFrame
df
?
(Использование Python 2.7.3, бесформенный 0.1.10, Linux 3.2.0-48-родовой-пай (Ubuntu), i686)
Спасибо за ваш ответ. Я еще не добрался до пылесоса - попробуй его в ближайшие дни. Представление OS о потреблении памяти не то, что меня интересует, поэтому getrusage() не поможет в моем случае. – rodion