美文网首页
内存抖动

内存抖动

作者: 卡路fly | 来源:发表于2020-05-24 18:05 被阅读0次

    内存抖动是由于短时间内有大量对象进出Young Generiation区导致的,它伴随着频繁的GC

    不同的分代都有不同的垃圾回收算法,并不一定要等到老年代内存满了才会触发GC,如果频繁创建生命周期较短的对象,就会触发MinorGC,从而引发内存抖动

    内存抖动的影响

    gc会大量占用ui线程和cpu资源,会导致app卡顿

    大多数的Android显示屏是以每秒60帧来刷新的。一帧可以看做是一张的独立的图片,60帧每秒就意味着,Android系统每隔16ms(1000ms/60Hz)就会进行一次渲染,如果这16ms内我们没有完成对视图的绘制,那么就会出现丢帧的情况

    app流畅运行的情况(虽然也可能伴随着gc,但是在16ms内完成了绘制)

    app卡顿的情况(gc占用ui线程的绘制时间,使得绘制时间超过16ms)

    避免内存抖动建议

    尽量避免在循环体内创建对象,应该把对象创建移到循环体外
    注意自定义View的onDraw()方法会被频繁调用,所以在这里面不应该频繁的创建对象
    当需要大量使用Bitmap的时候,试着把它们缓存在数组中实现复用
    对于能够复用的对象,可以使用对象池将它们缓存起来


    来源
    https://www.jianshu.com/p/06db842dee8c

    相关文章

      网友评论

          本文标题:内存抖动

          本文链接:https://www.haomeiwen.com/subject/fbpjahtx.html