Android 内存优化 内存泄漏

内存抖动

内存抖动是由于短时间内有大量对象进出新生区导致的,内存忽高忽低,有短时间内快速上升和下落的趋势,分析图呈锯齿状。
它伴随着频繁的GC,GC 会大量占用 UI 线程和CPU 资源,会导致APP 整体卡顿,甚至有 OOM 的可能。

GC时 STW stop the world

Android 内存优化 内存泄漏_第1张图片
Android 内存优化 内存泄漏_第2张图片
Android 内存优化 内存泄漏_第3张图片

内存泄漏

程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费。
Android 内存优化 内存泄漏_第4张图片

引用计数法

在对象中添加一个引用计数器,每当有一个地方引用它,计数器就加1,当引用失效时,计数器减1.
python在用,但主流虚拟机没有使用,因为存在对象相互引用的情况,这个时候需要引入额外的机制来处理,这样做影响效率

可达性分析

进程与JVM内存模型

每个应用程序都有自己单独的JVM实例。单个进程的内存泄漏、OOM不会影响到其他程序。
Android 内存优化 内存泄漏_第5张图片
Android 内存优化 内存泄漏_第6张图片

C++ 内存泄漏

C++没有类似于JVM的实例,其内存泄漏会影响所有的应用程序,且只有操作系统重启时,此内存泄漏才会修复。

Android应用程序内存大小

Android中从zygote进程fork出子进程时会有限定的内存空间大小。

你可能感兴趣的:(android,java)