假设我创建了一个大型bytearray。让我们说总共1000000字节或1mb。解释器是否在内存中保留1mb或在字节数组填充时使用内存。含义是否在内存中使用1mb的1000000字节的空字节数?
答案 0 :(得分:2)
我认为它是在建筑上分配/保留的。下面的行将在我的系统上将解释器的内存使用量增加大约100MB。
b = bytearray(1024*1024*100)
如果文档没有提到它,我想它可以实现。
答案 1 :(得分:1)
sys.getsizeof以字节为单位返回对象的大小:
In [242]: sys.getsizeof(bytearray(10**6))
Out[242]: 1000025
所以bytearray(10**6)
确实占用了大约1MB的空间。
请注意,虽然sys.getsizeof
为bytearrays提供了准确的答案,但如果应用于容器(例如列表),它只会提供容器的大小,而不包括容器的内容。