我最近使用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中变量占用的内存量的一个怪癖?
答案 0 :(得分:1)
这是由于C中的冻结构造函数逻辑,但它确实值得CPython错误报告。