python - Python 2.7 中 set 与 frozenset 占用的内存

标签 python memory set size immutability

我最近使用 Pympler 比较了 Python setfrozenset 占用的内存量| :

>>> 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/

相关文章:

python - Django自定义中间件渲染没有csrf token

python - 使用 python scipy 将 Gamma 分布拟合到数据

python - Python 中的 raise 会提高什么?

python - 限制 Tensorflow CPU 和内存使用

linux - Linux 中的选择性核心转储 - 如何选择转储部分?

swift - 如何更改另一个类中声明的类的变量值?

python - Numpy - 将数据分组为总和值

c - 内存布局 - C union

c++ - 为什么我的 UniquePtr 实现会重复释放?

scala - 如何在Scala中生成集合的幂集