【问题标题】:Python memory consumption in 64 bit system for int and float64位系统中int和float的Python内存消耗
【发布时间】:2015-07-17 06:25:29
【问题描述】:

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

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

我的问题是为什么整数比浮点值占用更多空间。但相反,在 32 位系统中

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

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

【问题讨论】:

    标签: python python-3.x memory


    【解决方案1】:

    开销(PyObject_HEAD) 增加了一倍,但是整数的大小从 32 位变为 64 位,而浮点数(双精度)的大小仍然是 64

    32 位 int:开销 = 10 字节,值 = 4 字节 浮点数:开销 = 8 字节,值 = 8 字节 64 位 int:开销 = 20 字节,值 = 8 字节 浮点数:开销 = 16 字节,值 = 8 字节

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

    【讨论】:

    • 你知道在哪里可以阅读 python 文档吗?
    • @xsquared。您必须查看源代码。 floatobject.hlongintrepr.h
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    相关资源
    最近更新 更多