Ram*_*Ram 6 python memory python-3.x
我正在Python 3.4上的64位系统中尝试以下代码来理解不同原始数据类型的内存消耗.
import sys
print(sys.getsizeof(45)) # prints 28
print(sys.getsizeof(45.2)) # prints 24
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么Integer占用的空间比float值多.但恰恰相反,在32位系统中
import sys
print(sys.getsizeof(45)) # prints 14
print(sys.getsizeof(45.2)) # prints 16
Run Code Online (Sandbox Code Playgroud)
整数占用的内存少于浮点数.为什么会这样?除芯片组尺寸外,它还取决于操作系统吗?
开销(PyObject_HEAD)已经加倍,但是当整数的大小从32位变为64位时,浮点数(双精度)的大小仍为64
32 bit int: overhead = 10 bytes, value = 4 bytes float: overhead = 8 bytes, value = 8 bytes 64 bit int: overhead = 20 bytes, value = 8 bytes float: overhead = 16 bytes, value = 8 bytes
请注意,int如果它们不适合本机数据类型,则可能大于此值
| 归档时间: |
|
| 查看次数: |
2614 次 |
| 最近记录: |