我正在尝试在python中改进我的脚本的内存使用量,因此我需要知道列表的RAM使用情况。 我用
测量内存使用情况print str(sys.getsizeof(my_list)/1024/1024)
希望能给出Mb中RAM列表的大小。
它输出12 Mb,但在top
命令中我看到我的脚本在运行时使用了4G笔记本电脑的70%RAM。
此外,此列表应包含来自~500Mb文件的内容。
所以12Mb是不现实的。
如何衡量实际内存使用情况?
答案 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;
}