我需要一个非常大的列表,并试图弄清楚我能做多大,以便它仍然适合1-2GB的RAM。我在64位(x86_64)上使用CPython实现。
编辑:感谢bua的回答,我已经填写了一些更具体的答案。
(以字节为单位)的空间(内存)使用情况:
sys.getsizeof([]) == 72
sys.getsizeof([0, 1, 2, 3]) == 104
,每个条目的开销为8字节。sys.getsizeof(2**62) == 24
(但根据整数大小而有所不同)sys.getsizeof(2**63) == 40
sys.getsizeof(2**128) == 48
sys.getsizeof(2**256) == 66
sizeof(Pyobject)
))
sys.getsizeof(C()) == 72
(C是一个空的用户空间对象)如果您可以分享有关观察到的尺寸的更多一般数据,那就太棒了。例如:
答案 0 :(得分:9)
指向开始:
>>> import sys
>>> a=list()
>>> type(a)
<type 'list'>
>>> sys.getsizeof(a)
36
>>> b=1
>>> type(b)
<type 'int'>
>>> sys.getsizeof(b)
12
并从python help:
>>> help(sys.getsizeof)
Help on built-in function getsizeof in module sys:
getsizeof(...)
getsizeof(object, default) -> int
Return the size of object in bytes.
答案 1 :(得分:6)