文章

内存抖动

内存抖动

内存抖动

内存抖动

什么是内存抖动?

内存抖动是由于短时间内有大量对象进出 Yong Generation 区导致的,它伴随着频繁的 GC。
通常发生内存抖动时,在 AS 的 Monitors 可以看到,内存曲线短时间内波动很大。

如何避免内存抖动

  1. 尽量避免在循环体内部创建对象,应该把对象创建移到循环体外
  2. 注意自定义 View 的 onDraw() 方法会频繁被调用,所以不要在该方法中创建对象
  3. 使用 StringBuilder 拼接字符串,不要频繁使用 +/-
  4. 当需要大量使用 Bitmap 时,试着把它们缓存在数组中实现复用
  5. 对于能够复用的对象,使用对象池将它们缓存起来

内存抖动排查

用 AS Profiler 工具,如果一段时间内,呈现了锯齿状图形,可能是出现了内存抖动,再分析具体代码存在的问题

本文由作者按照 CC BY 4.0 进行授权