我最近使用 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
为什么从 set
创建的 frozenset
占用的内存量与从其他可迭代对象创建的内存量不同?或者这只是 Pympler 如何近似计算 Python 中变量占用的内存量的一个怪癖?
最佳答案
这是由于 C 中的 frozenset 构造函数逻辑,但它确实可能值得 CPython 错误报告。
关于python - Python 2.7 中 set 与 frozenset 占用的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23618259/