Python大型bytearray内存

时间:2014-07-21 01:38:45

标签: python memory bytearray

假设我创建了一个大型bytearray。让我们说总共1000000字节或1mb。解释器是否在内存中保留1mb或在字节数组填充时使用内存。含义是否在内存中使用1mb的1000000字节的空字节数?

2 个答案:

答案 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提供了准确的答案,但如果应用于容器(例如列表),它只会提供容器的大小,而不包括容器的内容。

如果您需要计算对象的大小,包括其内容,那么a recipe(在the docs中引用)就可以了。