python - 如何知道数组和字典等python对象的字节大小? - 简单的方法

标签 python object memory size byte

我一直在寻找一种简单的方法来了解数组和字典对象的字节大小,例如

[ [1,2,3], [4,5,6] ] or { 1:{2:2} }

很多话题都说要用pylab,例如:

from pylab import *

A = array( [ [1,2,3], [4,5,6] ] )
A.nbytes
24

但是,字典呢? 我看到很多建议使用 pysize 或 heapy 的答案。 Torsten Marek 在此链接中给出了一个简单的答案:Which Python memory profiler is recommended? ,但我对输出没有明确的解释,因为字节数不匹配。

Pysize 似乎比较复杂,我还没有一个明确的想法如何使用它。

考虑到我想要执行的大小计算的简单性(没有类或复杂的结构),有什么简单的方法可以大致估计此类对象的内存使用情况吗?

亲切的问候。

最佳答案

有:

>>> import sys
>>> sys.getsizeof([1,2, 3])
96
>>> a = []
>>> sys.getsizeof(a)
72
>>> a = [1]
>>> sys.getsizeof(a)
80

但我不会说它那么可靠,因为 Python 对每个对象都有开销,并且有些对象只包含对其他对象的引用,因此它与 C 和其他语言中的不太一样。

阅读 sys.getsizeof 上的文档我猜从那里去。

关于python - 如何知道数组和字典等python对象的字节大小? - 简单的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13530762/

相关文章:

python - 关于内存效率 : range vs xrange, zip vs izip

Python简单游戏的简单得分(点)系统

ruby-on-rails - 如何在没有初始化方法的情况下在 ActiveRecord 中创建对象?

javascript - 为什么在函数外部声明变量并在循环中赋值比局部变量使用更多内存?

python - 如何获取外部程序的内存使用情况 - python

python - 转换为二进制并保留前导零

c# - 将 PictureBox 对象传递给类中的方法

javascript - 将数组元素设置为对象属性

Python os.walk 内存问题

python - 安装 Google Assistant 时,我报错 "...googlesamples.assistant' 是一个包,无法直接执行...”