如何在python中测量对象的内存使用情况?

Cia*_*ran 8 python memory-management

我有一个python类"foo",其中包含:

  • 数据(整数,浮点数)
  • 列表(整数,浮点数和其他对象)
  • 字典(整数,浮点数,其他对象)

假设没有反向引用(循环),是否有一种简单的方法来衡量"foo"对象的总内存使用量?

基本上,我正在寻找"sys.getsizeof" 的递归版本

少数的,我碰到的工具包括:heapy,objgraph和GC,但我不认为任何人都能够胜任工作(我可以在此进行校正)

建议赞赏!

Sco*_*ths 18

试试Pympler,它将自己描述为"用于测量,监视和分析Python对象的内存行为的开发工具".

有点像

>>> import pympler
>>> print pympler.asizeof.asizeof(your_object)
Run Code Online (Sandbox Code Playgroud)

过去对我很有帮助.

您可以搜索SO以获取更多信息 - 这是Alex Martelli 的推荐.


Ore*_*zor 0

我不确定您是否正在尝试获取类型的大小或实际的复杂对象,但是看看 getsizeof,文档指出了这个健壮递归版本的秘诀:

http://code.activestate.com/recipes/577504/

所以我假设没有“stock”python 调用可以做到这一点,否则文档会提到它。