美文网首页性能优化相关
四、内存抖动与OOM

四、内存抖动与OOM

作者: Serenity那年 | 来源:发表于2018-10-28 21:26 被阅读5次

1.内存抖动:内存频繁的分配和回收,频繁的gc会导致UI卡顿,严重的时候导致out of memory error(内存超过分配的最大值)

使用adb命令查看手机给每个应用分配的内存大小:
adb shell getprop dalvik.vm.heapsize

2.垃圾回收算法

  • 1.标记--清除算法 :直接回收标记的内存,不移动存活对象,导致内存不连贯,碎片化严重;但是不用移动,执行速度快,效率高;
  • 2.复制算法:浪费50%的内存;
  • 3.标记--压缩算法:会对存活对象移动,没有碎片;但是因为移动存活对象,有额外开销;

3.分代
java虚拟机的堆内存分为新生代和老年代及永久代;
新生代又分为亚当区和夏娃区;新创建的对象在亚当区,当亚当区满的时候,会转移到夏娃区;但是在夏娃区又分为两个区,当对象每经历一次gc,“年龄”都会加一,当达到阈值,就会转移到夏娃的第二区;再到达一定阈值,就会转移到老年代;


屏幕快照 2018-10-15 下午1.44.45.png

垃圾回收器是垃圾回收算法的实现;新生代和老年代回收器实现的算法是不一样的;
新生代gc :minor gc
老年代gc: magor gc

Android垃圾回收采用CMS垃圾收集器(采用标记--清除算法),与所有用户线程并发进行;

相关文章

  • 四、内存抖动与OOM

    1.内存抖动:内存频繁的分配和回收,频繁的gc会导致UI卡顿,严重的时候导致out of memory error...

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

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

  • Android内存泄漏原理分析和优化实践

    内存泄漏是Android开发必须重视的问题,它可能导致应用性能低下,内存抖动,甚至OOM.如何检测和分析OOM是必...

  • Android内存优化-进阶

    内存优化-进阶篇 内存优化分为: 内存抖动、内存泄露、内存溢出 OOM 1、优秀的架构设计 1.1 MVVM 设计...

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

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

  • 内存泄露相关

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

  • Android 内存优化工具介绍

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

  • 内存优化——内存抖动

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

  • 二. Android 内存优化

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

  • 浅谈性能优化-内存优化一

    内存抖动 内存频繁的分配与回收,(分配速度大于回收的速度时)最终会产生OOM。 一个线程开辟如上图所示,蓝色部分是...

网友评论

    本文标题:四、内存抖动与OOM

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