Python 2.7中set vs frozenset占用的内存

时间:2014-05-12 20:29:07

标签: python memory set size immutability

我最近使用Pympler比较了Python set占用的内存量与frozenset占用的内存量:

>>> from pympler.asizeof import asizeof
>>> x = range(100)
>>> s = set(x)
>>> f0 = frozenset(x)
>>> f1 = frozenset(s)
>>> asizeof(s)
10824
>>> asizeof(f0)
10824
>>> asizeof(f1)
6728
>>> f0==f1
True

为什么从frozenset创建的set占用的内存量与从其他迭代中创建的内存量不同?或者这只是Pympler如何近似Python中变量占用的内存量的一个怪癖?

1 个答案:

答案 0 :(得分:1)

这是由于C中的冻结构造函数逻辑,但它确实值得CPython错误报告。