您将如何找出一个对象正在使用多少内存?我知道有可能找出一段代码使用了多少,但不是一个实例化的对象(在其生命中的任何时候),这正是我想要的。
没有简单的方法可以找出 python 对象的内存大小 。您可能会发现的问题之一是 Python 对象(如列表和字典)可能引用了其他 Python 对象(在这种情况下,您的大小是多少?大小是否包含每个对象的大小?)。有一些与对象类型和垃圾收集相关的指针开销和内部结构。最后,一些 python 对象有不明显的行为。例如,大多数情况下,列表会为更多的对象保留空间;dicts 更加复杂,因为它们可以以不同的方式操作(它们对少量的键有不同的实现,有时它们会过度分配条目)。
有一大块代码(和更新的一大块代码)试图最好地近似内存中 python 对象的大小。
您可能还想查看一些关于 PyObject(代表几乎所有 python 对象的内部 C 结构)的旧描述。