齐天大圣

内存泄漏 Memory Leak

内存泄漏 Memory Leak 内存泄漏定义 本该被回收的对象,因为某些原因(有对象正在持有该应该回收对象的引用)而不能被回收,从继续停留在堆内存中。本质原因:对象 A(持有引用者)的生命周期 > 被引用者(对象 B)的生命周期,从而导致对象 B 需要在生命周期结束时,而无法正确被回收。 检测内存泄漏 检测内存泄漏非常简单,只需要拿到 hprof 文件进行分析就可以知道哪里产...

内存抖动

内存抖动 内存抖动 什么是内存抖动? 是内存抖动是由于短时间内有大量对象进出 Yong Generation 区导致的,它伴随着频繁的 GC。通常发生内存抖动时,在 AS 的 Monitors 可以看到,内存曲线短时间内波动很大。 如何避免内存抖动 尽量避免在循环体内部创建对象,应该把对象创建移到循环体外 注意自定义 View 的 onDraw() 方法会频繁被调用,所以...

内存优化基础

内存优化基础 物理内存和虚拟内存 现代操作系统都不直接操作物理内存,而是虚拟内存。App 申请的内存也都是虚拟内存。对于每个 app 来说,在 32 位操作系统,都认为自己的进程独享 2^32 容量的虚拟内存,实际上占用多少物理内存,用的时候再去分配,64 位系统是 2^48,而不是 2^64,因为 256TB 足够大了,用 2^64 会有大量寻址空间浪费。 虚拟内存分为用户空间和内核...