
内存泄漏和内存占用拆解系列专题

文章平均质量分 94
本专栏分享内存泄漏和内存占用拆解系列专题,深度较大,讲解多种不同内存泄漏的分析方式,涉及malloc debug工具二次改造,讲解ION/GPU等内存原理,内存拆解,基于原理设计多个轻量级工具开发,工具原理等等。学完专栏后,内存泄漏、内存占用拆解及内存理论就会是较高水平了。
优惠券已抵扣
余额抵扣
还需支付
¥89.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
一起搞IT吧
从事IT行业十多年,搞过汇编开发单片机,智能硬件,开发板,手机开发。Linux驱动六七年,Android垂直开发累计十年+,手机camera领域开发八九年。一直未太多时间发博客,最近带新人,发现新人成长太慢,开始整理十多年工作经验的点点滴滴,理论博文网络遍地开花,优先分享实战、开发技巧、开发效率供大家一起搞IT吧。
有问题可优先评论区留意或邮箱271674605@qq.com联系,谢谢。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
内存泄漏系列专题分析之二十三:meminfo无法统计到的黑洞内存泄漏分析
内存泄漏系列专题分析之二十三:meminfo无法统计到的黑洞内存泄漏分析原创 2025-06-21 15:00:00 · 339 阅读 · 0 评论 -
内存泄漏系列专题分析之二十一:高通相机CamX内存泄漏&内存占用分析--GPU内存拆解
通过上述debug方式,可以看到patch补丁可以顺利debug各种ION内存分布,可以通过它分析ION内存占用问题。同时我们还可以分析GPU内存泄漏问题,同样的方式可以看到所有的GPU内存分布,如果某个GPU内存持续增长,就极有可能内存泄漏,然后更具堆栈信息去分析代码,并解决GPU内存泄漏问题。!!原创 2025-06-17 19:00:00 · 244 阅读 · 0 评论 -
内存泄漏系列专题分析之二十:camx swap内存泄漏实例分析
本文分析了相机服务进程(camxhal)在老化测试中出现的swap内存泄漏问题,该进程swap内存持续增长至4.5GB且未释放,导致相机应用ANR。通过日志分析发现,swap内存增长与相机运行状态无关,推测是长时间低内存压力触发内核压缩机制所致。进一步复现发现,该问题仅在高负载老化版本中概率性出现,根源在于FDNode模块的多线程同步缺陷:性能劣化时,线程竞争导致cv_face_destroy_tracker未执行论,性能极差下,非常低概率下,线程同步异常导致内存泄漏。!!下一篇讲解。原创 2025-06-11 15:09:17 · 1686 阅读 · 0 评论 -
内存泄漏系列专题分析之四:Android malloc_debug工具在Camera领域使用中预览卡死的瓶颈限制问题和二次改造
上一篇我们讲了这一篇我们开始讲内存泄漏系列专题分析之四:Android malloc_debug工具在Camera领域使用中预览卡死的瓶颈限制问题和二次改造。原创 2025-05-02 15:41:23 · 1014 阅读 · 0 评论 -
内存泄漏系列专题分析之一:内存泄漏系列专题SOP及理论知识
内存泄漏(Memory Leak)是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。内存泄漏缺陷具有隐蔽性、积累性的特征,比其他内存非法访问错误更难检测。因为内存泄漏的产生原因是内存块未被释放,属于遗漏型缺陷而不是过错型缺陷。此外,内存泄漏通常不会直接产生可观察的错误症状,而是逐渐积累,降低系统整体性能,极端的情况下可能使系统崩溃。原创 2025-04-13 15:00:00 · 697 阅读 · 2 评论 -
内存泄漏系列专题分析之三十一:Camx进程dumpsys meminfo Unknown部分内存拆解
摘要:本文分析了Android Camera应用进程中Unknown内存异常增长的问题。通过dumpsys meminfo发现Unknown内存达到55M,比上一版本增加40M。排查和解决方案。原创 2025-07-29 10:15:27 · 80 阅读 · 0 评论 -
内存泄漏系列专题分析之三十:dumpsys meminfo原理解析
本文解析Android的dumpsys meminfo内存分析工具原理,重点介绍了其统计方法和各内存区域的分析要点。文章首先展示典型输出示例,然后详细剖析虚拟地址空间、Native堆、Dalvik堆、栈等11个关键内存区域的统计原理,包括smaps和memtrack两种主要统计方式。特别指出Native堆实际大小应为PssTotal+SwapPssDirty,并解释分配器延迟释放机制。针对常见问题给出分析思路,如unknown内存过大的排查方法,以及swap内存被计入system区域的统计特性。最后预告了后原创 2025-07-23 11:23:52 · 838 阅读 · 0 评论 -
内存泄漏系列专题分析之二十九:高通相机CamX--Android通用GPU内存分配和释放原理
内存泄漏系列专题分析之二十九:高通相机CamX--Android通用GPU内存分配和释放原理原创 2025-07-18 16:08:03 · 103 阅读 · 0 评论 -
内存泄漏系列专题分析之二十八:内存占用测试report结果过程计算方式和Camera进程各种内存指标dump方式
本文详细讲解了Camera相机进程内存占用测试中内存指标的获取方式与计算方法。主要内容包括:1)Camera进程内存指标的dump方式,与内存泄漏测试方法类似;2)内存占用测试报告的计算流程,重点说明如何获取单次测试内存值、识别重复内存项;3)相机总内存计算公式(三个进程的PSS+ION/DMA部分-重复数据-代码段);4)最终取多次测试中的峰值作为内存占用结果值,并说明了评判标准(测试机不超过对比机特定百分比)。文章还展示了APPION和HALION进程的具体内存数据样例。原创 2025-07-07 20:56:29 · 1141 阅读 · 0 评论 -
内存泄漏系列专题分析之二十七:内存占用测试Camera相机进程内存指标分布report概述
本文介绍了相机领域内存占用测试的report模板及分析方法。文章首先指出内存泄漏测试需细化场景,特别是相机领域需确保测试环境一致。随后展示了一个标准内存测试report模板,包含相机APP、相机服务、高通相机服务三大进程的详细内存指标,涉及Native Heap、Dalvik Heap等多项数据。文章详细说明了report的自定义方法、测试规范(建议100次测试)、以及横向纵向数据分析维度。最后强调了ION共享内存的去重处理和单位转换注意事项,为相机内存测试提供了标准化参考方案。原创 2025-07-01 13:12:08 · 1465 阅读 · 0 评论 -
内存泄漏系列专题分析之二十五:内存泄漏测试report Camera相机进程各种内存指标dump方式
摘要:本文详细介绍了Camera相机进程内存泄漏测试中各类内存指标的dump方法。主要内容包括: 针对Camera APP、Camera Server和Camx HAL三大进程的内存指标分析 非ION内存指标的dump方法:使用dumpsys meminfo命令获取Native Heap、Dalvik Heap等关键指标 ION内存指标的dump方法:针对不同kernel版本(5.15前后)分别说明高通和MTK平台的dump路径和方式 各进程内存指标的详细示例数据,包括PSS、RSS等关键数值 不同进程内存原创 2025-06-25 09:00:00 · 966 阅读 · 0 评论 -
内存泄漏系列专题分析之二十六:内存泄漏测试report结果过程计算方式
本文介绍了相机内存泄漏测试报告的计算方法,主要包括:1)内存增长值计算公式;2)处理ION共享内存的重复计算问题 3)相机总内存计算方式,需扣除重复ION和代码段;4)内存泄漏判定标准,以持续增长趋势或超过设定阈值为准。文章提供了详细的内存数据分析方法,帮助准确识别相机场景中的内存泄漏问题。原创 2025-06-25 14:30:00 · 1088 阅读 · 0 评论 -
内存泄漏系列专题分析之二十四:内存泄漏测试Camera相机进程内存指标分布report概述
本文介绍了Camera相机领域内存泄漏测试的方法和报告模板。针对复杂软件场景,建议通过重复测试特定场景来检测内存泄漏,重点关注三个进程:相机APP、cameraserver服务和camerahal服务。报告模板包含测试次数、时间戳及各进程内存指标(Native Heap、Dalvik Heap等)的详细记录。测试流程包括首次启动、多次操作(100-2000次)及记录内存释放情况。通过对比不同阶段的内存数据,计算内存增长值和未回收值来判定是否存在内存泄漏。文中还说明了内存指标的选择依据和测试原创 2025-06-24 14:12:44 · 218 阅读 · 0 评论 -
内存泄漏系列专题分析之二十二:句柄/文件描述符fd泄漏实例分析
内存泄漏系列专题分析之:句柄/文件描述符fd泄漏实例分析原创 2025-06-19 17:00:00 · 1920 阅读 · 0 评论 -
camera拍照丢图问题分析三:【ION内存峰值爆了】相机频繁多次拍摄后,相机会崩溃,且崩溃前拍的照片不见了
camera拍照丢图问题分析一:【ION内存峰值爆了】相机频繁多次拍摄后,相机会崩溃,且崩溃前拍的照片不见了原创 2025-06-05 09:34:55 · 651 阅读 · 0 评论 -
内存泄漏系列专题分析之十九: 开机内存占用超标分析一:cameraserver超标1.8M分析
开机内存超标分析一:cameraserver超标1.8M分析。原创 2025-04-26 19:30:00 · 871 阅读 · 0 评论 -
内存泄漏系列专题分析之十八: requestStreamBuffers: request too much buffers for stream 3: 请求内存buffer数超标解决方案
本文分析了Camera HAL3中内存泄漏问题,特别是requestStreamBuffers函数请求的缓冲区数量超过最大值的情况。通过日志分析,发现requestStreamBuffers请求的缓冲区数量(19)超过了最大值(21),导致相机卡死或闪退的解决方案原创 2025-05-26 19:30:00 · 603 阅读 · 0 评论 -
内存泄漏系列专题分析之十七: Camera HAL3 camera3_stream_t max_buffers和Camera3Stream maxNumBuffers最大buffer数控制FWK原理
本文深入分析了Camera HAL3中camera3_stream_t结构体的max_buffers和Camera3Stream结构体的maxNumBuffers的作用及其更新机制原创 2025-05-23 19:52:07 · 151 阅读 · 0 评论 -
内存泄漏系列专题分析之十六:高通相机CamX内存泄漏&内存占用分析--chi-cdk部分ION内存拆解方法
本文介绍了高通相机CamX架构中chi-cdk部分的ION内存管理机制,并详细讲解了如何通过自定义补丁来分析和解决ION内存泄漏及内存占用问题。文章提供了具体的补丁代码和使用方法,通过编译并刷入补丁后,可以捕捉信号并打印ION内存分配日志,从而分析内存占用和泄漏情况。原创 2025-05-16 19:30:00 · 230 阅读 · 0 评论 -
内存泄漏系列专题分析之十五:高通相机CamX架构chi-cdk部分ION内存管理机制CHI ImageBuffer原理
本文详细分析了高通相机CamX架构中CHI部分的ION内存管理机制,重点探讨了CHIBufferManager和CHI ImageBuffer模块的工作原理。CHIBufferManager通过初始化、激活、获取ImageBuffer等接口管理内存,支持CamX和CHI的统一或独立管理。原创 2025-05-15 19:30:00 · 118 阅读 · 0 评论 -
内存泄漏系列专题分析之十三:高通相机CamX内存泄漏&内存占用分析--Camx pipeline的ION内存拆解方法
本文介绍了针对高通相机CamX架构中ION内存泄漏和占用问题的分析方法。通过自定义补丁插入Camx源码并编译,实现对Camx pipeline内部ION内存的调试。具体步骤包括:将Camx pipeline ION debug patch应用到Camx代码中,编译并刷机;使用kill命令触发信号,打印ION内存分配日志;通过日志分析ION内存占用和泄漏问题。该方法能够有效检测ION内存的分布情况,解决内存占用过高和泄漏问题,并优化内存管理。原创 2025-05-13 19:30:00 · 947 阅读 · 0 评论 -
内存泄漏系列专题分析之十四:高通相机CamX ION/dmabuf内存管理机制ImageBuffer之GrallocBuffer原理
本文深入探讨了高通相机CamXION/dmabuf内存管理机制中的CSLBuffer原理。文章首先回顾了ImageBuffer的两种ION内存来源:CSLBuffer和GrallocBuffer,并详细解析了GrallocBuffer的申请过程。原创 2025-05-14 19:30:00 · 111 阅读 · 0 评论 -
内存泄漏系列专题分析之十二:高通相机CamX ION/dmabuf内存管理机制ImageBuffer之CSLBuffer原理
本文深入探讨了高通相机CamXION/dmabuf内存管理机制中的CSLBuffer原理。文章首先回顾了ImageBuffer的两种ION内存来源:CSLBuffer和GrallocBuffer,并详细解析了CSLBuffer的申请过程。原创 2025-05-13 08:00:00 · 88 阅读 · 0 评论 -
内存泄漏系列专题分析之十一:高通相机CamX ION/dmabuf内存管理机制Camx ImageBuffer原理
本文深入探讨了高通相机CamX框架中的内存管理机制,特别是CamxImageBuffer的原理。文章首先介绍了CamxImageBufferManager的管理单元,包括初始化、内存池管理、获取ImageBuffer及其核心接口。接着,详细解析了CamxImageBuffer模块的结构,包括ImageBuffer的分配方式及其与BufferHeap的关系。原创 2025-05-12 19:30:00 · 386 阅读 · 0 评论 -
内存泄漏系列专题分析之十:高通camx dump ION内存错峰处理时异常,导致后置HDR拍照内存泄漏
在做大项目时,经常会在不同项目节点进行大规模测试,进行不同场景下各种内存泄漏测试用例,有内存泄漏自然正面去解决即可,有时会遇到测试用例出现dump ION错峰异常导致的内存泄漏情况,但dump分析不出来哪里泄漏。原创 2025-05-12 08:00:00 · 167 阅读 · 0 评论 -
内存泄漏系列专题分析之九:高通camx ION内存计算重复内存时异常,导致后置HDR拍照内存内存占用超标
在做大项目时,经常会在不同项目节点进行大规模内存占用测试,进行不同场景下各种内存占用测试用例,有内存占用问题自然正面去解决即可,有时会遇到测试用例出现内存dump异常情况,导致测试标准无法满足要求。原创 2025-04-19 20:00:00 · 1020 阅读 · 6 评论 -
内存泄漏系列专题分析之八:高通相机CamX内存泄漏&内存占用分析--通用ION(dmabuf)内存拆解
通过上述debug方式,可以看到patch补丁可以顺利debug各种ION内存分布,可以通过它分析ION内存占用问题,并且可以解决ION内存持续增长的ION内存泄露问题。!!原创 2025-05-05 08:00:00 · 1558 阅读 · 0 评论 -
内存泄漏系列专题分析之七:高通相机CamX--Android通用ION(dmabuf)内存分配和释放原理
内存泄漏系列专题分析之七:高通相机CamX--Android通用ION(dmabuf)内存分配和释放原理原创 2025-05-05 08:00:00 · 643 阅读 · 0 评论 -
内存泄漏系列专题分析之三:Google官方Android malloc_debug官方英文版介绍
上一篇我们讲了:内存泄漏系列专题分析之二:Google官方Android malloc_debug实现原理 这一篇我们开始讲: 内存泄漏系列专题分析之三:Google官方Android malloc_debug官方英文版介绍目录【关注我,后续持续新增专题博文,谢谢!!!】一、官方网站(需翻墙)二、:官方英文版介绍Malloc DebugControlling Malloc Debug BehaviorOption Descriptionsfront_guard[=SIZE_BYTES]rear原创 2025-05-02 15:40:29 · 95 阅读 · 0 评论 -
内存泄漏系列专题分析之二:Google官方Android malloc_debug实现原理
malloc-debug是android⾃带调试⼯具,可以协助调试内存相关问题,简单理解是使⽤mallocdebug调试函数替换标准库中的malloc/free等内存相关函数,每次申请和释放内存都对内存做标记和记录,当内存泄漏或越界时,通过记录相关信息⽅便调试问题。我们只能使⽤来检查native heap内存泄漏,其它的内存越界检查等等使⽤hwasan⼯具。主要包含的功能如下:1、申请后多次释放 (double free)2、释放后⼜去使⽤ (used after free)3、使⽤越界。原创 2025-05-02 15:39:09 · 665 阅读 · 0 评论 -
内存泄漏系列专题分析之六:高通camx 内存泄漏测试的未回收问题分析
即打开相机分配的内存,在测试完退出相机后并未释放,包含构造函数里分配的内存,一般应该在析构函数里释放掉。原创 2025-04-03 13:48:50 · 1213 阅读 · 0 评论 -
内存泄漏系列专题分析之五:使用malloc_debug定位C/C++ native heap内存泄露
使用Malloc Debug工具,我们关心BYTES和%TOTAL两个指标。如果这两个指标一直偏大,就标明可能存在内存泄露。原创 2025-04-11 10:09:19 · 1275 阅读 · 0 评论