列出内存使用情况

时间:2013-12-25 09:58:29

标签: python list memory

我正在尝试在python中改进我的脚本的内存使用量,因此我需要知道列表的RAM使用情况。 我用

测量内存使用情况
print str(sys.getsizeof(my_list)/1024/1024)

希望能给出Mb中RAM列表的大小。

它输出12 Mb,但在top命令中我看到我的脚本在运行时使用了4G笔记本电脑的70%RAM。

此外,此列表应包含来自~500Mb文件的内容。

所以12Mb是不现实的。

如何衡量实际内存使用情况?

2 个答案:

答案 0 :(得分:13)

sys.getsizeof仅考虑列表本身,而不考虑其中包含的项目。

根据sys.getsizeof documentation

  

...   只有直接归因于对象的内存消耗才是   占,而不是它所指的对象的内存消耗。   ...

使用Pympler

>>> import sys
>>> from pympler.asizeof import asizeof
>>>
>>> obj = [1, 2, (3, 4), 'text']
>>> sys.getsizeof(obj)
48
>>> asizeof(obj)
176

答案 1 :(得分:0)

这是一个显示两个建议答案的代码段。但是,使用pympler可以为我的问题提供正确且更简洁的答案。谢谢falsetru :-)

#sectionOptionsSelect span {
    display: block;
}
相关问题