【发布时间】:2019-06-11 04:59:01
【问题描述】:
如图所示。 50 000 000 条记录只占用 404M 内存,为什么?由于一条记录占用 83 Bytes,因此 50 000 000 条记录应占用 3967M 内存。
>>> import sys
>>> a=[]
>>> for it in range(5*10**7):a.append("miJ8ZNFG9iFqiQQohvyTWwqsij2rJCiZ7v"+str(it))
...
>>> print(sys.getsizeof(a)/1024**2)
404.4306411743164
>>> print(sys.getsizeof("miJ8ZNFG9iFqiQQohvyTWwqsij2rJCiZ7v"))
83
>>> print(83*5*10**7/1024**2)
3957.7484130859375
>>>
【问题讨论】:
-
其他人也有与您类似的查询,但走得更远,所以这更像是一个相关线程:Deep version of sys.getsizeof