python列表内存使用情况

use*_*168 9 python memory list

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

print str(sys.getsizeof(my_list)/1024/1024)
Run Code Online (Sandbox Code Playgroud)

希望能给我一个Mb中RAM列表的大小.

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

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

所以12Mb是不现实的.

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

fal*_*tru 13

sys.getsizeof 只考虑列表本身,而不是它包含的项目.

根据sys.getsizeof文件:

...只考虑直接归因于对象的内存消耗,而不考虑它所引用的对象的内存消耗....

使用Pympler:

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