Python整数占用字节的异常现象(非4或8字节),sys.getsizeof(),sys.maxsize,sys.int_info

Python内存泄漏排查实战:tracemalloc、objgraph与pympler三阶定位法 Python内存泄漏是一种隐蔽性强、症状缓慢的系统性问题,常表现为RSS持续增长、服务OOM或性能渐进劣化。其本质源于对象生命周期管理失当——如全局缓存未失效、循环引用阻塞GC、C扩展内存脱离Python追踪等。掌握内存剖析需理解三层次原理:`tracemalloc`重建分配调用链以定位代码行,`objgraph`解析对象引用关系识别强持有者,`pympler`提供全量类型级内存分布审计。该技术栈不仅支撑Flask/FastAPI后端稳定性优化,也广泛应用于pandas数据处理、PyTorch训练脚本及电商 阅读详情

前面在书上看到Python3有大整数小整数之分,小整数即小于sys.maxsize(在Python2用sys.maxint表示)的整数,大整数即大于sys.maxsize的整数。

小整数用4或8个字节表示,32位Python用4个字节,64位Python用8个字节表示。
大整数每个数字用15bit或30bit表示,即2字节或4字节表示。大整数没有4或8个字节的总长度限制,理论上可以无限大。

我的机器装的32位Python,小整数最大值为sys.maxsize,值大致为32位二进制,也就是4个字节的值范围。但是,诡异的是用sys.getsizeof()来查看占用字节数的时候,结果让人很懵逼,说好的4呢,怎么是12……

import sys
import math
print(sys.maxsize)
#结果为2147483647
print(math.log(sys.maxsize, 2))
#结果大致为31.0
print(sys.getsizeof(int()))
#结果为12

通过在stackoverflow的一番研究,原来Python在整数中还加有其他附加信息,具体每个人机器上的值一样不一样,填天知道,还学会了一个词YMMV(Your Mileage May Vary),直译就是因人而异,说白了就是人品问题!
有兴趣的可以参考

https://stackoverflow.com/questions/10365624/sys-getsizeofint-returns-an-unreasonably-large-value#

http://www.laurentluce.com/posts/python-integer-objects-implementation/
Python内存分析实战:从OOM定位到热修复的三层诊断法 Python内存管理是服务稳定性的核心基础,其本质涉及CPython内存分配机制、对象生命周期与进程内存映射的协同作用。理解RSS、USS与Python堆内存的物理边界,是区分真实泄漏与假阳性告警的关键前提;掌握tracemalloc、objgraph和pympler等工具的适用边界与典型陷阱,可避免将mmap文件或C扩展内存误判为Python对象泄漏。该技术广泛应用于高并发Web服务、AI推理后端及数据ETL流水线等对内存敏感的生产场景。本文聚焦真实线上OOM问题,系统拆解进程级监控、对象级追踪与代码级验 阅读详情

相关推荐

Python变量内存机制解析:从引用模型到内存优化实战

在编程语言中,内存管理是理解程序运行机制的核心基础。Python采用基于引用的内存模型,变量本质上是对象的标签而非存储容器,这一设计直接影响了程序的性能表现和内存使用效率。理解引用计数与垃圾回收机制,能够帮助开发者编写出更高效、更健壮的代码,尤其在处理大规模数据或长时间运行的服务时至关重要。通过掌握可变与不可变对象的内存差异,可以避免常见的引用陷阱和内存泄漏问题。在实际开发中,结合内存分析工具如tracemalloc和memory_profiler,能够有效监控和优化内存使用,提升程序的整体性能。本文深入探

weixin_34117211的博客 536

Python高级进阶:从对象模型、内存布局到执行调度的底层认知

Python高级能力的本质,不在于掌握更多语法糖,而在于理解其对象模型、内存管理机制与执行调度原理。作为动态语言,Python通过引用计数与分代垃圾回收协同工作,对象创建、属性访问、协程切换等行为均受字节码指令(如INPLACE_ADD、GEN_SEND)和C层结构体(如PyListObject)严格约束。深入`__slots__`可重构实例内存布局,`weakref`能打破循环引用实现精准生命周期控制,`gc`模块则提供观测与干预回收过程的能力。这些技术共同支撑高并发、低延迟、内存可控的生产级服务——尤其

482

Python内存剖析实战:定位内存膨胀与引用滞留

Python内存管理依赖引用计数与分代垃圾回收双机制,但`sys.getsizeof()`无法反映真实内存占用,常导致误判。内存问题本质分为泄漏、膨胀和引用滞留三类,其中内存膨胀(如pandas读取CSV时dtype引发的套娃式引用)和引用滞留(如闭包、缓存字典长期持有对象)在生产环境更为常见且隐蔽。专业剖析需结合allocation tracing(tracemalloc)、行级监控(memory_profiler)、对象普查(pympler)与引用图谱(objgraph)四类工具,形成从分配热点→对象增

weixin_30861797的博客 368

python查看函数消耗的内存_用sys.getsizeof查看对象占用内存数

python sys模块的getsizeof函数,可以得到对象的内存占用数量,in bytes。>>>import sys>>> sys.getsizeof([1,2,3,4,5,6])112>>> sys.getsizeof((1,2,3,4,5,6))96>>> sys.getsizeof('123456')55>>> sys.getsizeof(123456)28>>> sys.getsiz...

weixin_39872191的博客 782

TabPy实战指南:Tableau集成Python实现高级分析

TabPy是一种将Python计算能力深度嵌入Tableau的分析扩展技术,其核心是通过HTTP客户端-服务器架构,实现Tableau与Python生态(如scikit-learn、pandas、XGBoost)的安全、实时、低耦合交互。它解决了BI工具在机器学习推理、复杂统计建模和动态数据预处理方面的原生短板,让分析师无需导出数据或切换平台,即可在可视化层直接调用训练好的模型或自定义算法。该技术显著提升分析实时性与复用性,广泛应用于销售预测、异常检测、客户分群与情感分析等场景,是构建AI增强型商业智能看板

weixin_33871366的博客 357

Python高级编程核心技术:装饰器、元编程与并发编程实战指南

Python作为一门动态编程语言,其高级特性如装饰器和元编程构成了语言的核心机制。装饰器基于函数作为一等公民的原理,通过闭包实现功能增强,在日志记录、性能监控等场景中展现技术价值。元编程通过描述符协议和元类机制,为框架开发和API设计提供强大支持。在并发编程领域,理解GIL限制和asyncio事件循环原理,能够针对CPU密集型和IO密集型任务选择合适的并发策略。这些Python高级技术在实际工程实践中,特别是在性能优化和内存管理方面,帮助开发者构建高效可维护的应用系统。本文通过装饰器实现和元类应用等具体案例

weixin_30920513的博客 426

python入门的基本数据类型

1、整数 :int 运用python进行进制转换 >>> print(0b1001) #二进制 9 >>> print(0o1001) #八进制 513 >>> print(0x1001) #十六进制 4097 python的整数长度为32位—4字节,并且通常是连续分配内存空间 id()函数:专门用于查看任何数据类型地址的函数 >>> id(0) 2258850900240 >>> id(...

a_sshead的博客 746

Python高效解析JSON数据在抖音弹幕游戏开发中的应用

JSON作为轻量级数据交换格式,在现代网络应用中扮演着重要角色。其基于文本的结构化特性,使得数据在不同系统间的传输与解析变得高效可靠。在技术实现层面,JSON解析涉及字符编码处理、数据结构映射等核心原理,直接影响应用的性能表现。对于抖音弹幕游戏这类高并发场景,选择orjson等高性能解析库可以显著提升吞吐量,实测解析10万条数据仅需0.8秒。合理运用预编译正则、内存缓存等优化技巧,能有效应对弹幕高峰期的性能挑战,确保游戏流畅运行。这些JSON处理技术同样适用于电商实时竞价、物联网设备通信等需要高效数据交换的

weixin_34391445的博客 603

python sys.getsizeof 详解

在这个示例中,sys.getsizeof 仅返回对象 obj 本身的大小,不包括其属性 name 和 data 所引用对象的大小。sys.getsizeof 是 Python 标准库中的一个函数,用于获取一个对象在内存中占用的字节数。这个函数直接返回对象的大小,而不考虑对象引用的其他对象的大小。为了准确计算一个对象及其引用对象的总内存占用,可以使用递归方法。对于准确计算对象的总内存占用,推荐使用递归方法,或使用第三方库如 pympler 进行更复杂的内存分析。

qq_37805392的博客 1288

python-sys.getsizeof的使用

科班出身的码畜一直被灌输一条上帝圣经:“一个int占4个字节,一个char占1个字节,一个float占4个字节。。。”, 今天看下了python的getsizeof函数,发现python中各个基本数据类型(对象)占用的内存大小和c++/Java完全不一样~ 前提概述:python中一切都是对象,so python中其实根本不存在int float这些类型,int其实是一个python对象...

qm5132的博客 1万+

Vivado ChipScope Debugging: Overcoming Common DRC Errors in FPGA Design

本文深入解析Vivado ChipScope调试中常见的DRC错误,特别是AVAL-244和AVAL-245等时钟相关问题,提供实用的Tcl命令解决方案和最佳实践。通过将DRC错误降级为警告的技巧,帮助FPGA设计者高效完成调试流程,同时强调何时应保留DRC检查以确保设计可靠性。

weixin_30335575的博客 416

python中int占几个字节_Python中的整型占多少个字节?

说到计算机中的整型,相信很多人都会联想到32位整型(或者int),是程序员日常生活中用的最多的一种类型。32位整型顾名思义,占用32个位也就是4个字节,取值范围−2,147,483,648~ 2,147,483,647 。C/C++中是4个字节,Java中也是4个字节,但是Python中呢?我们知道Python中也有int类,而且非常好用,原生支持高精度计算。但是Python中的一个整型到底占用多...

weixin_39997173的博客 8151

易灵思Ti60F100 FPGA的HyperRAM实战:从硬件连接到Native接口时序调试

本文详细介绍了易灵思Ti60F100 FPGA内置HyperRAM控制器的实战应用。文章从硬件设计要点(如400MHz+信号完整性、等长匹配)切入,重点解析了如何通过Interface Designer配置高效的Native接口,并分享了其时序详解与调试技巧,为开发者提供了一份从硬件连接到软件调试的深度指南。

weixin_29168153的博客 456

python3 核心笔记

本文主要是针对python3的一些核心要点做一些记录,感兴趣的可以关注和订阅。会持续更新,这个玩意学习一下,可以为数据分析和AI打下一定的基础。

yanghuashuiyue的专栏 617

时间同步中 TOD 与GPRMC和IRIG-B的区别

时间同步中 TOD 与GPRMC和IRIG-B的区别

ftdlk的博客 1725

pnpm 卸载教程:彻底移除 pnpm 及全局缓存的方法

卸载 pnpm = 全局包 → CLI → 环境变量 → store 缓存只要按这个顺序来,基本不会留下任何坑。如果你后面还打算重新安装 pnpm / 切换 npm、yarn / 多包管理器共存,这些细节反而更重要,环境一旦干净,后续问题会少很多。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 927

Python高级语法与高级应用深度解析2026版:从描述符到元类、从协程到AST的完整实战指南

本文是Python高级应用系列的开篇,重点探讨Python高级编程技巧。文章分为9个核心章节:描述符协议与属性控制、元类与类创建机制、上下文管理器、生成器进阶、类型提示、内存模型、AST模块、函数式高级模式,以及一个配置框架实战案例。通过ORM字段定义等实例,详细解析数据描述符和非数据描述符的区别及应用场景,展示Python底层机制的实际应用。文章要求读者具备面向对象和函数式编程基础,适合希望深入Python高级特性的开发者学习。

热爱技术与前沿创新,深耕科技领域,在科创中精进自我;探索技术乐趣,分享技术干货与成长心得,以技术为伴,热爱生活,在科创与生活中双向成长。 480

杰理-tone

低音质格式切换高音质格式:切换提示音格式,未导出,编译下载没有提示音;提示音导出,再次编译下载,提示音正常高音质格式切换低音质格式:不需要导出,直接编译下载,提示音正常。

m0_67447112的博客 955

Python __slots__ 内存优化原理与工程实践

在 Python 中,对象默认携带动态 __dict__ 字典,导致小对象内存开销激增,这是高频数据建模、ORM 实体和序列化 DTO 场景下的典型性能瓶颈。__slots__ 通过禁用 __dict__、预分配固定字段偏移量,将实例内存布局从哈希表结构转为紧凑 C 结构体,实现 30%~60% 的内存压缩。其本质是用显式属性契约替代隐式扩展自由,在保障访问性能的同时显著降低 GC 压力与 RSS 占用。适用于日志模型、事件消息、API 响应体等轻量对象密集型场景,但需规避多重继承冲突、第三方库兼容性及字符

weixin_33857679的博客 352

基于STM32L4XX、HAL库的ESP32-S3-WROOM-1-N4 WIFI模块驱动程序设计

/ 检查是否收到完整的一行(以\r\n结尾)// 例如: 解析AT命令响应或MQTT消息等。// UART2初始化已在CubeMX中配置。// USART2初始化函数(由CubeMX生成)// 缓冲区溢出,重置。// 如果需要等待响应。// 处理接收到的数据。// 处理接收到的数据。// 等待ESP32模块启动。// 主循环其他任务。// 启用UART全局中断。// 发送HTTP GET请求。// 发送AT测试命令。// 连接Wi-Fi。// UART中断回调函数。

zhusl6688的博客 286

RK3588 部署 YOLO26-Pose 人体姿态检测:Windows Docker 环境全流程

YOLO26-Pose 在 RK3588 上的部署流程是 PC 端 ONNX 导出 → RKNN 转换(INT8 量化)→ 板端推理。INT8 量化后 YOLO26s-Pose 约 35ms,YOLO26n-Pose 约 15ms,可以覆盖实时姿态检测的需求。后处理是 Python 实现的常见瓶颈——如果帧率不达标,先用 npy 保存模型输出在 PC 上验证解析逻辑的正确性,确认无误后再迁移到 C++ 实现。

m0_64661770的博客 543

Python面试核心:从对象模型到并发编程的深度解析

在编程语言中,理解对象模型与内存管理是构建健壮应用的基础。Python作为一门动态语言,其‘一切皆对象’的核心设计哲学,决定了变量、函数和类的底层行为逻辑。深入理解可变对象与不可变对象的区别,是掌握函数参数传递、避免数据共享副作用的关键,这直接关系到代码的可靠性与性能。在并发编程领域,全局解释器锁(GIL)是CPython实现中的重要机制,它影响了多线程程序的并行效率,区分CPU密集型和I/O密集型任务,并据此在`threading`、`multiprocessing`和`asyncio`之间做出正确的技术

chutisun0039的博客 425

YOLOv8改进:基于EfficientNetV2均衡缩放网络的特征提取层优化【YOLOv8】

YOLO(You Only Look Once)系列模型以其高效的实时目标检测能力而闻名。YOLOv8作为该系列的最新版本,通过引入改进的网络结构和算法优化,进一步提升了目标检测的性能。然而,YOLOv8在特征提取阶段的网络结构仍有改进的空间。EfficientNetV2是一种基于均衡缩放的卷积神经网络,它通过优化网络的宽度、深度和分辨率来实现高效的特征提取。与之前的EfficientNet版本相比,EfficientNetV2在速度和精度上都有显著提升,尤其在处理复杂目标检测任务时表现尤为突出。

博客 1582

Python 性能优化完全指南 2026 版:从 profiling 到 Cython 的全链路加速实战

本文是Python性能优化的实战指南,介绍了从性能测量到优化的全流程方法。主要内容包括:1) 性能优化的正确心态和闭环流程;2) 五大优化层级及其效果对比;3) 四种核心性能测量工具:timeit(微基准测试)、cProfile(函数级分析)、line_profiler(逐行分析)和memory_profiler(内存分析)。文章通过丰富代码示例展示了如何识别性能瓶颈,为后续优化打下基础,强调优化前必须先测量定位问题。

热爱技术与前沿创新,深耕科技领域,在科创中精进自我;探索技术乐趣,分享技术干货与成长心得,以技术为伴,热爱生活,在科创与生活中双向成长。 279

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Python字典底层原理与工程实践:哈希表、视图、defaultdict全解析

字典是Python最核心的内置数据结构,其本质是基于哈希表实现的键值映射容器。理解哈希函数、开放寻址与动态扩容机制,能避免KeyError、内存泄漏和性能瓶颈;掌握dict_keys视图、get/setdefault方法及defaultdict等高级特性,则可显著提升配置管理、日志统计与API解析等真实场景的健壮性与效率。本文结合CPython源码逻辑与千万级生产案例,系统拆解字典从创建、访问到嵌套安全访问的完整技术链路,覆盖3.7+插入顺序保证、Structural Pattern Matching集成及

weixin_30471561的博客 423

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

上一篇: 《Modern Python Cookbook》(Python经典实例)笔记1.3大整数和小整数
下一篇: 批处理(.bat)无限循环,定时,固定时间间隔
mighty13
博客等级 码龄23年 728粉丝 438原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值