Android 性能优化之内存抖、内存泄露检测

226 阅读1分钟

内存抖动

  • 内存抖动是由于短时间内有大量对象进出新生代, 内存忽高忽低,有短时间内快速上升和下落的去世,分析图锯齿状。

  • 伴随GC, GC会STW大量占用UI线程的CPU资源,导致APP整体卡顿,甚至出现 OOM 的可能

  • 出现锯齿状的内存图形,并GC的垃圾桶存在表示内存抖动

例子1

image.png

例子2

image.png

GC

image.png

内存泄露

程序中已动态分配的堆内存由于某种原因程序未释放或者无法释放, 造成系统内存的浪费。

静态单利持有了activity, Activity 销毁之后无法释放;

GCRoot 可达分析法

image.png

内存泄露分析器 Profiler

例子代码

image.png

Android Profiler

image.png

内存泄露例子:

image.png

内存泄露分析器 MAT(Memory Analysis Tool)

image.png