小编vez*_*eli的帖子

Python 基本类型的内存使用(尤其是 int 和 float)

这是来自 Python 3.8.0 解释器的示例(但是,它在 3.7.5 中类似)

>>> import sys
>>> sys.getsizeof(int)
416
>>> sys.getsizeof(float)
416
>>> sys.getsizeof(list)
416
>>> sys.getsizeof(tuple)
416
>>> sys.getsizeof(dict)
416
>>> sys.getsizeof(bool)
416
Run Code Online (Sandbox Code Playgroud)

getsizeof()返回 Python 对象消耗的字节数以及垃圾收集器的开销(参见此处)。基本python类消耗相同数量的内存的原因是什么?

如果我们看一下这些类的实例

>>> import sys
>>> sys.getsizeof(int())
24
>>> sys.getsizeof(float())
24
Run Code Online (Sandbox Code Playgroud)

默认参数是,0并且这两个实例对此参数具有相同的内存使用量。但是,如果我尝试添加一个参数

>>> sys.getsizeof(int(1))
28
>>> sys.getsizeof(float(1))
24
Run Code Online (Sandbox Code Playgroud)

这就是奇怪的地方。为什么 int 类型的实例内存使用量增加,而 float 类型的实例内存使用量没有增加?

python memory-management python-internals

8
推荐指数
1
解决办法
3047
查看次数