Python列表在内存中的大小

12 浏览
0 Comments

Python列表在内存中的大小

我刚刚尝试了一下Python数据结构在内存中的大小。我写了下面的代码片段:

import sys
lst1=[]
lst1.append(1)
lst2=[1]
print(sys.getsizeof(lst1), sys.getsizeof(lst2))

在不同的配置下,我得到了以下输出:

  • Windows 7 64位,Python3.1:输出为52 40(所以lst1占用52字节,lst2占用40字节)
  • Ubuntu 11.4 32位,Python3.2:输出为48 32
  • Ubuntu 11.4 32位,Python2.7:输出为48 36

有人能解释一下为什么这两个大小不同,尽管都是包含一个1的列表吗?

在Python的getsizeof函数文档中,我找到了以下内容:

...如果对象由垃圾收集器管理,会增加额外的垃圾收集器开销。

在我的例子中,这可能是个原因吗?

0