性能优化相关

四、内存抖动与OOM

2018-10-28  本文已影响5人  Serenity那年

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

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

2.垃圾回收算法

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


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

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

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

上一篇下一篇

猜你喜欢

热点阅读