You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python整数对象占用32字节内存?64位系统下额外字段是什么?

64位CPython中整数对象占用32字节的额外字段是什么?

在64位CPython实现里,整数对象(PyLongObject)的结构包含以下字段,总大小刚好为32字节:

  • ob_refcnt:8字节的引用计数字段,用于垃圾回收机制
  • ob_type:8字节的指针,指向int类型对象,标识当前对象的类型
  • ob_size:8字节的Py_ssize_t类型字段,用来记录存储整数值的digit数组长度(像3、4、5这类小整数,该值为1,因为单个digit就能存下)
  • ob_digit[1]:8字节的无符号长整数数组元素,实际存储小整数的数值

把这些字段的字节数相加:8+8+8+8=32字节,正好对应你测试中看到的相邻整数对象ID间隔。

另外,CPython的内存分配会强制做8字节对齐,确保对象地址是8的倍数,而这个整数对象结构本身刚好满足32字节的大小要求,所以相邻小整数对象的地址差就是32字节。

内容的提问来源于stack exchange,提问作者Leon Chang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 12:57:36