Camera-memory内存泄漏分析(三)

本文探讨了Android系统中使用Profiler和dumpsysmeminfo监控内存泄漏的差异。dumpsys提供了更全面的内存信息,对于定位进程内存变化和问题排查更为有效。作者通过对比正常与异常的dumpsysmeminfo数据,展示了如何分析内存异常,并提及了展讯平台上的malloc追踪。此外,还提到了项目中遇到的动态堆空间问题及其解决策略,强调了深入理解内存问题的重要性。
摘要由CSDN通过智能技术生成

        通过Provider、sysinfo监控查看内存泄漏的机制会有一些利弊,并不能很准确的反应出相对应的memory的变化,更愿意选择通过dumpsys meminfo去check具体进程的memory变化情况,而且dumsys信息也会更全面、更利于整体把控相关问题点。

一、Profiler VS dumpsys

        dumpsys memory拿到的信息量以及可监控的进程量是远远多于Profiler,有的问题可以通过dumpsys发现,有的问题通过Profiler就可能是误判。

Profiler实时监控的memory情况:

dumpsys监控下的memory情况:

二、 dumpsys meminfo正常、异常数据对比

正常数据:

异常数据:

 三、展讯平台malloc异常追踪

        不同的平台都有一定的对malloc申请与释放追踪的机制,以下以展锐平台为例,配置好追踪malloc的backtrace之后,在复现内存泄漏的设备下dump native heap信息,用平台development里面相关的脚本进行解析即可得到以下堆积malloc堆栈的lib信息。

 总结

        其实Android内存相关的问题并不仅仅是内存泄露的问题,在项目中还曾经遇到过动态申请的堆空间异常导致程序用到这一堆栈时出现崩溃的问题,之前同一个项目中俩个不同的算法同时遇到了类似的问题,这个问题最后虽然用提前申请malloc空间的方案解决了,但是作为研发,感觉真的有必要更深层次的研究这些问题背后到底发生了什么,不过这个问题的研究可能会被delay。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值