小编典典

找出Python中的对象正在使用多少内存

all

您将如何找出一个对象正在使用多少内存?我知道有可能找出一段代码使用了多少,但不是一个实例化的对象(在其生命中的任何时候),这正是我想要的。


阅读 77

收藏
2022-05-13

共1个答案

小编典典

没有简单的方法可以找出 python 对象的内存大小 。您可能会发现的问题之一是 Python 对象(如列表和字典)可能引用了其他 Python
对象(在这种情况下,您的大小是多少?大小是否包含每个对象的大小?)。有一些与对象类型和垃圾收集相关的指针开销和内部结构。最后,一些 python
对象有不明显的行为。例如,大多数情况下,列表会为更多的对象保留空间;dicts
更加复杂,因为它们可以以不同的方式操作(它们对少量的键有不同的实现,有时它们会过度分配条目)。

有一大块代码(和更新的一大块代码)试图最好地近似内存中
python 对象的大小。

您可能还想查看一些关于 PyObject(代表几乎所有 python 对象的内部 C 结构)的旧描述。

2022-05-13