了解Python中的对象使用了多少内存

问题:

你将如何去发现一个对象使用了多少内存?我知道有可能找出代码块使用了多少,但不是被实例化的对象(生命中的任何时间)使用,这就是我想要的。

回答:

 没有找到python对象的内存大小的简单方法。您可能发现的一个问题是Python对象(如列表和dict)可能会引用其他python对象(在这种情况下,您的大小是多少?包含每个对象的大小的大小)?有一些指针开销和内部结构与对象类型和垃圾收集相关。最后,一些python对象有不明显的行为。例如,列表为大多数时间的更多对象预留空间;因为他们可以以不同的方式进行操作(他们对于少量的密钥有一些不同的实现,有时候它们分配条目),所以更为复杂。
在这里有一个big chunk of code(和updated big chunk of code)来尝试最好地近似内存中的一个python对象的大小。还有一些simpler approximations。但他们总是近似的。
您可能还需要检查一些old description about PyObject(表示几乎所有python对象的内部C struct)。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Find out how much memory is being used by an object in Python

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

81 − 75 =