内存抖动
内存抖动是由于短时间内有大量对象进出新生区导致的,内存忽高忽低,有短时间内快速上升和下落的趋势,分析图呈锯齿状。
它伴随着频繁的GC,GC 会大量占用 UI 线程和CPU 资源,会导致APP 整体卡顿,甚至有 OOM 的可能。
GC时 STW stop the world
内存泄漏
程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费。
引用计数法
在对象中添加一个引用计数器,每当有一个地方引用它,计数器就加1,当引用失效时,计数器减1.
python在用,但主流虚拟机没有使用,因为存在对象相互引用的情况,这个时候需要引入额外的机制来处理,这样做影响效率
可达性分析
进程与JVM内存模型
每个应用程序都有自己单独的JVM实例。单个进程的内存泄漏、OOM不会影响到其他程序。
C++ 内存泄漏
C++没有类似于JVM的实例,其内存泄漏会影响所有的应用程序,且只有操作系统重启时,此内存泄漏才会修复。
Android应用程序内存大小
Android中从zygote进程fork出子进程时会有限定的内存空间大小。