是否有关于32位和64位平台上Python数据结构的内存大小的参考?
如果没有,这将是很好的在SO上.越详尽越好!那么以下Python结构使用了多少字节(取决于len
相关时的内容类型)?
int
float
str
tuple
list
dict
set
array.array
numpy.array
deque
(对于仅保留对其他对象的引用的容器,我们显然不希望自己计算项目的大小,因为它可能是共享的.)
此外,有没有办法在运行时(递归或不递归)获取对象使用的内存?
我有一个python类"foo",其中包含:
假设没有反向引用(循环),是否有一种简单的方法来衡量"foo"对象的总内存使用量?
基本上,我正在寻找"sys.getsizeof" 的递归版本
少数的,我碰到的工具包括:heapy,objgraph和GC,但我不认为任何人都能够胜任工作(我可以在此进行校正)
建议赞赏!
如图所示。50 000 000条记录只占用404M内存,为什么?由于一条记录占用 83 字节,因此 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
>>>
Run Code Online (Sandbox Code Playgroud) 我有以下格式的字典:
演示代码:
>>> import pprint
>>> pprint.pprint(data)
{'lookup': {'F01': '\n.custom1 {\n background-color: #f5e9dc;\n padding: 10px;\n border-radius: 10px;\n font-family: sans-serif;\n font-size: 0.9em;\n margin-top: 1em;\n }\n.custom2 .style8-rw {\n font-family: sans-serif;\n font-weight: bold;\n color: #F57215;\n }',
'F02': '\n.custom1 {\n background-color: #f5e9dc;\n padding: 10px;\n border-radius: 10px;\n font-family: sans-serif;\n font-size: 0.9em;\n margin-top: 1em;\n }\n.custom2 .style8-rw {\n font-family: sans-serif;\n font-weight: bold;\n color: #F57215;\n }',
'F03': '\n.custom1 {\n background-color: #f5e9dc;\n padding: 10px;\n border-radius: 10px;\n font-family: sans-serif;\n font-size: 0.9em;\n margin-top: 1em;\n }\n.custom2 .style8-rw {\n font-family: sans-serif;\n font-weight: bold;\n …
Run Code Online (Sandbox Code Playgroud)