美文网首页
内存与OOM

内存与OOM

作者: 想看烟花么 | 来源:发表于2025-01-15 00:11 被阅读0次

1.软,弱,虚引用区别:

GC 扫描后不一定回收,除非内存不够;GC扫描到就回收了;及时回收;

2.垃圾回收原理:

对象创建后放在年轻代的Eden区,GC 扫描后计数+1,放在年轻代的存活1区,GC再次扫描到后移动到年轻代的存活2区,15次之后还可达,从年轻代移到老年代,时间沉淀后,还可达,从老年代移到永久代。

3.垃圾回收算法:

标记清除算法:容易内存碎片,扫描两次,第一次扫描标记,第二次扫描回收不可达对象
复制算法:内存使用一半,用完后用另一半,之前一半清除和回收。利用率低,高效(因为只扫描一次)
标记整理算法:第一次扫描出使用中,可回收,未使用的内存,第二次扫描整理。因此效率低
分代算法:综合运用复制算法和标记整理算法(比如老年代以上,不需要经常回收,效率地点也没关系,但是利用率高啊)

4.Android获取内存:

image.png
image.png

5.MAT使用:

1.柱状图包名排序后:incoming和outcoming理解:


image.png

2.浅堆和深堆:


image.png
3.新增引用内存的影响:
image.png

6.Bitmap 内存优化(Android official site)

epic(from github)


image.png

7.LeakCanary原理(输出和haha可达性诊断):

1.在contentProvider中进行的初始化
2.原理理解:


image.png
image.png
image.png

3.看输出时,从下往上看,最下面的时泄漏的类,往上看是一层层的持有关系。

拓展:

Activity.componentCallback2


image.png

相关文章

网友评论

      本文标题:内存与OOM

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