美文网首页
内存问题:内存抖动为什么会导致程序卡顿与OOM?

内存问题:内存抖动为什么会导致程序卡顿与OOM?

作者: 程序狮 | 来源:发表于2021-03-19 10:47 被阅读0次

内存抖动

短时间内有大量对象创建与销毁,它伴随着频繁的GC。

卡顿

内存抖动会引起频繁的gc,gc是会STW(stop the word)的,会暂停用户线程。

OOM

CMS垃圾回收器老年代是标记-清除算法:不会移动存活的对象,会产生内存碎片。
像有一种内存情况,虽然有很多内存可用,但却是不连续的,如果申请连续的10个字节(假设现在内存中没有连续10个情况)的内存就会产生OOM,因为没有连续的10个字节的可用内存。
比如申请bitmap时就很可能产生OOM。

预防内存抖动

1.避免在循环中创建对象;
2.避免在频繁调用的方法中创建对象,如View的onDraw方法;
3.允许复用的情况下,使用对象池进行缓存,如:Handler的Message单链表(obtain);

内存抖动例子

字符串拼接,+=操作。
避免用+或者+=操作,使用StringBuilder来实现字符串拼接

相关文章

  • Android 内存优化工具介绍

    一、内存优化介绍 内存问题:内存抖动:锯齿状、GC 导致卡顿内存泄漏:可用内存减少、频繁GC内存溢出:OOM、程序...

  • Android内存优化—内存优化总结

    内存问题 内存抖动:导致GC导致卡顿 内存泄漏:导致频繁GC,可用内存减少 内存溢出:导致OOM 工具排查 AS中...

  • 二. Android 内存优化

    1. 内存问题: 内存抖动(锯齿状、GC导致卡顿)内存泄漏:可用内存减少、频繁GC内存溢出:OOM、程序异常 2....

  • 内存优化——内存抖动

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

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

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

  • 内存优化

    1概述 介绍 内存抖动:锯齿状,GC导致卡顿内存泄漏,可用内存减少,频繁GC内存溢出:OOM,程序异常 工具 1M...

  • 内存问题:内存抖动为什么会导致程序卡顿与OOM?

    内存抖动 短时间内有大量对象创建与销毁,它伴随着频繁的GC。 卡顿 内存抖动会引起频繁的gc,gc是会STW(st...

  • 内存优化

    内存问题内存抖动:通过工具可以发现是锯齿状 , 可导致GC频繁,GC频繁会导致程序卡顿。内存泄漏:可用内存减少,导...

  • 内存泄露相关

    ·# 内存 对用户体验影响 可能oom 内存过大被LMK机制杀死。 内存抖动造成程序卡顿 原理 内存分配策略 首先...

  • Android 内存抖动介绍及实例演示

    一、内存抖动介绍 定义:内存频繁分配和回收导致内存不稳定表现:频繁 GC、内存曲线呈锯齿状危害:导致卡顿、OOM ...

网友评论

      本文标题:内存问题:内存抖动为什么会导致程序卡顿与OOM?

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