memory监控方法

Java:

(adb shell dumpsys meminfo x)堆内存用于存储对象实例和静态变量

Native:

Code:

加载app代码用到的内存:比如class对象,读取so,apk,dex文件时用到的mmap文件

Stack:

stack内存存放了栈帧(用于存储局部变量、操作数以及返回地址),每个方法调用都会创建一个栈,stack内存是虚拟机进程独有的

GPU显存(dmabuffer)

adb shell dumpsys meminfo 可以获取系统全部显存内存占用大小

adb shell dumpsys meminfo pid **-->**Graphics: 部分也可以获取到进程的显存占用

gpu显存的详细占用存放在如下文件中:/sys/kernel/debug/dma_buf/bufinfo

自动化shell脚本已上传附件

以上命令可查到进程memory占用大小,但查不到进程memory详细分布

发现内存高,内存泄露时如何抓取memory详细数据

Java:

抓hprof文件,自动化抓取脚本已上传附件(hprof文件分析方法后续文章有详细介绍)

Native:

抓native内存 推荐采用perfetto和raphael,都是开源的,都能抓到申请native内存的泄露栈,

perfetto适合抓取60s以内没有释放的native内存,raphael可以抓到长时间内存泄露栈(但准确性不好,一些复杂的app有crash,以及释放内存不准确的bug)

自动化抓取脚本已上传附件(raphael和perfetto memory文件分析方法后续文章有详细介绍)

Java,Native内存泄露的分析放在下一篇文章详细介绍,敬请期待

感谢您抽出宝贵时间读完本文,希望您有收获,能不能动动小手指给完❤再走?

相关推荐
无足鸟ICT4 小时前
【RHCA+】bash命令
linux·开发语言·bash
weixin_307779134 小时前
Linux下Docker Compose里运行的MySQL数据库故障诊断Shell脚本
linux·运维·mysql·docker·自动化
小生不才yz4 小时前
Shell脚本精读 · S14-02 | 脚本模板:从 20 行工具到可维护项目
linux
x-cmd4 小时前
Linus 9 年前说「模糊测试有效」——今天已成 OSS-Fuzz 时代铁律
linux·ai·rust·开源·自动化·agent·安全性测试
私人珍藏库5 小时前
[Android] PocketPal -本地离线AI助手+大模型部署神器
android·人工智能·app·软件·多功能
ujainu小5 小时前
原生性能优化:6变量实现高效桥接
开发语言·华为·性能优化·harmonyos
listening7775 小时前
HarmonyOS 6.1 跨端实战:用ArkUI-X把电商App同时跑在Android/iOS上
android·ios·harmonyos
爱笑鱼5 小时前
Handler(三):主线程、HandlerThread、Binder 线程到底怎么区分?
android
w139548564225 小时前
鸿蒙实战:报告与雷达图 ReportDao
android·华为·harmonyos·鸿蒙系统
六点_dn5 小时前
Linux学习笔记-chmod命令
linux·笔记·学习