gpt4 book ai didi

64 位系统中 Python 对 int 和 float 的内存消耗

转载 作者:太空狗 更新时间:2023-10-29 23:58:31 24 4
gpt4 key购买 nike

我正在 Python 3.4 的 64 位系统中尝试以下代码,以了解不同原始数据类型的内存消耗。

import sys
print(sys.getsizeof(45)) # prints 28
print(sys.getsizeof(45.2)) # prints 24

我的问题是为什么 Integer 比 float 值占用更多空间。但恰恰相反,在32位系统中

import sys
print(sys.getsizeof(45)) # prints 14
print(sys.getsizeof(45.2)) # prints 16

整数比 float 占用更少的内存。为什么会出现这种行为?除了芯片组大小之外,它还取决于操作系统吗?

最佳答案

开销 (PyObject_HEAD) 增加了一倍,但是当 int 的大小从 32 位增加到 64 位时, float ( double )的大小仍然是 64

32 bitint:   overhead = 10 bytes, value = 4 bytesfloat: overhead =  8 bytes, value = 8 bytes64 bitint:   overhead = 20 bytes, value = 8 bytesfloat: overhead = 16 bytes, value = 8 bytes

请注意,如果 int 不适合 native 数据类型,则可以大于此值

关于64 位系统中 Python 对 int 和 float 的内存消耗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31469553/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com