Android垃圾回收机制

一. 垃圾回收机制

1. 新生代(Young Generation):

1)   大多数新建的对象都位于Eden区

2) 当Eden区被对象填满时,就会执行minor GC,并把所有存活下来对象转移到其中一个survivor区

3) survivor space:s0, s1 两个区域,存放每次垃圾回收后存活的对象

4) minor GC同样会检查survivor 区,这样一段时间内,总会有一个空的servivor区

2.老生代(Old Generation)

1)  存放长期存活的对象和经过多次minor GC后依然存活下来的对象

3. 永生代(Permanent Generation)

1) 存放方法区,存放应用程序类和方法,静态变量,final类型的常量、属性和方法信息

 

 

 

 

 

二. GC的触发条件

GC分为minor GC 和 major GC 

minor GC从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC

major GC 是清理老年代永生代

1 minor GC触发条件

1)当Eden区满时,触发minor GC

2 major GC 触发条件:

1)老生代空间不足

2)永生代空间不足

3)通过minor GC后进入老生代的平均大小大于老生代可用内存

4) 由Eden区,from Space区向 to Space区复制时,对象大小大于to Space可用内存,则把该对象传入老生代,且老生代的可用内存小于该对象大小

 

posted @ 2019-12-01 16:53  Ayinger  阅读(2126)  评论(0编辑  收藏  举报