如何确定 Python 中对象的大小?

新手上路,请多包涵

如何获取 Python 中对象在内存中占用的大小?

原文由 user46646 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 511
1 个回答

只需使用 sys 模块中定义的 sys.getsizeof 函数。

sys.getsizeof(object[, default]) :

以字节为单位返回对象的大小。该对象可以是任何类型的对象。所有内置对象都将返回正确的结果,但这不一定适用于第三方扩展,因为它是特定于实现的。

仅考虑直接归因于对象的内存消耗,而不考虑其引用的对象的内存消耗。

default 参数允许定义一个值,如果对象类型不提供检索大小的方法并将导致 TypeError 将返回该值。

getsizeof 调用对象的 __sizeof__ 方法并添加额外的垃圾收集器开销(如果对象由垃圾收集器管理)。

有关使用 getsizeof() 递归查找容器大小及其所有内容的示例,请参见 递归 sizeof 配方

使用示例,在 python 3.0 中:

 >>> import sys
>>> x = 2
>>> sys.getsizeof(x)
24
>>> sys.getsizeof(sys.getsizeof)
32
>>> sys.getsizeof('this')
38
>>> sys.getsizeof('this also')
48

如果您使用的是 python < 2.6 并且没有 sys.getsizeof 您可以改用 这个扩展模块。虽然从未使用过它。

原文由 nosklo 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏