android probe 流程,Android内存泄露自动化链路分析组件Probe.pdf

编程入门 行业动态 更新时间:2024-10-15 12:30:03

android probe 流程,Android内存泄露自动化<a href=https://www.elefans.com/category/jswz/34/1768738.html style=链路分析组件Probe.pdf"/>

android probe 流程,Android内存泄露自动化链路分析组件Probe.pdf

Android 内存泄漏⾃动化

链路分析组件——Probe

张毅然/美团点评⾼级⼯程师

1.背景

2.业内解决⽅案

3.问题和策略

4.案例

5.总结

背景

• 内存溢出(OutOfMemory)复现困难

• 堆栈信息不能看出内存泄漏的根本原因

• 特别是第三⽅SDK的内存问题更为棘⼿

• ⽆法有效获得线上内存泄漏的可疑对象

1.背景

2.业内解决⽅案

3.问题和策略

4.案例

5.总结

业内解决⽅案

针对所有内存溢出 是否提供泄漏点路径

⽅案 适⽤于线上环境 ⾃动化

case 信息

Leakcanary 否 否 是 是

MAT分析 是 是 否 是

预设可怀疑对象⽅案 否 否 是 是

⽬标

• 适⽤于线上app,分析线上OOM问题

• 所有的case均能检测分析

• 分析时间少

• 分析进程内存空间占⽤低,分析进程⾃⼰不OOM

1.背景

2.业内解决⽅案

3.问题和策略

4.案例

5.总结

问题和策略

• OOM时候dump内存

• App启动时候,单独开启进程分析

问题和策略

• 问题1:链路分析时间过⻓

• 问题2 :分析进程占⽤内存过⼤

• 问题3 :基础类型泄漏检测不到

Dominator & Shallow Size &

Retain Size

• Dominator ⽀配者—— 如果从GC root到达对象Y的

路径上,必须经过对象X ,那么X就是Y的⽀配者。

查找可疑对象

• 链路归并

查找可疑对象

• ⾃适应扩容法

问题和策略

• 问题1:链路分析时间过⻓

• 问题2 :分析进程占⽤内存过⼤

• 问题3 :基础类型泄漏检测不到

核⼼问题

分析占⽤内存为什么这么⼤?

核⼼问题

分析占⽤内存为什么这么⼤?

内存快照⽂件的⼤⼩正相关?

对⽐实验

• ⼀个实验——在⼀个256M阈值OOM的⼿机上,让

⼀个成员变量申请特别⼤的⼀块内存200多M

• ⼈造OOM,dump内存,分析

• 内存快照⽂件达到250多M,分析进程占⽤内存并

不⼤ 70M左右

对⽐实验

• 另⼀个实验——在⼀个256M阈值OOM的⼿机上,

添加特别多200万个⼩对象(72字节)

• ⼈造OOM,dump内存,分析

• 内存快照⽂件达到250多M,分析进程占⽤内存增

⻓很快,在解析就OOM了

核⼼问题

分析占⽤内存为什么这么⼤?

内存快照⽂件的Instance数量

正相关!

原始流程

hprof

更多推荐

android probe 流程,Android内存泄露自动化链路分析组件Probe.pdf

本文发布于:2024-03-23 21:18:02,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1742927.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:链路   组件   流程   内存   probe

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!