美文网首页
内存抖动

内存抖动

作者: 卡路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

相关文章

  • Android 性能优化-内存抖动

    本文将了解内存抖动是什么以及内存抖动发生的原因及常见解决办法 内存抖动是什么 内存抖动:内存抖动实际上就是内存频繁...

  • 「性能优化4.1」内存优化的三个方面及工具

    内存优化的三个方面 APP 内存优化一般从 内存抖动,内存泄露,内存溢出这三个方面进行分析。 内存抖动 内存抖动是...

  • android 内存泄漏分析与优化(二)

    内存抖动、内存溢出、内存泄漏 内存抖动在极短的时间内,分配大量的内存,然后又释放它,这种现象就会造成内存抖动。典型...

  • Android内存抖动——检测、常见场景、处理

    内存抖动 介绍:内存抖动是Android性能优化中内存优化的一种情况,主要是由于频繁的对象创建导致内存抖动,最终可...

  • 内存抖动

    造成内存抖动的原因。 频繁大量的创建对象,造成虚拟机频繁触发GC。 内存抖动有什么后果。 1.程序卡顿;2.可能回...

  • 内存抖动

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

  • 内存优化——内存抖动

    内存抖动是指内存频繁地分配和回收,而频繁的gc会导致卡顿,严重时和内存泄漏一样会导致OOM。内存抖动为什么会造成O...

  • 内存优化——内存抖动

    什么是内存抖动? 短时间内大量的对象被创建,导致可用内存不足,从而引起频繁gc回收对象,这种已用内存忽高忽低的现象...

  • 吐血整理!究极深入Android内存优化(二)

    四、内存抖动 当 内存频繁分配和回收 导致内存 不稳定,就会出现内存抖动,它通常表现为 频繁GC、内存曲线呈锯齿状...

  • 调皮的内存抖动?前生今世及App解决卡顿慢

    内存抖动 ·内存抖动是指内存频繁地分配和回收,而频繁的gc会导致卡顿,严重时和内存泄漏一样会导致OOM。 注意内存...

网友评论

      本文标题:内存抖动

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