5.1 GC垃圾收集机制
对于垃圾回收机制,我们需要记住下边这几点:
1. 次数频繁收集Young区
2.次数较少收集Old区
3.基本不动元空间
JVM在进行GC时,并非每次都对三个内存区域一起回收的,大部分时候回收的都是指新生代。
因此GC按照回收的区域又分为了两种类型,一种为普通GC(minor GC ),一种为全局GC(major GC or Full GC)
这两种GC的区别:
(1) 普通GC(minor GC):只针对新生代区域的GC,指发生在新生代的垃圾收集动作,因为java对象的存活率不高,所以Minor GC的非常不频繁,一般回收速度也比较快。
(2)全局GC(major GC or Full GC):指发生在老年代的垃圾回收动作,出现了Major GC,经常至少伴随一次的Major GC (但并不是绝对的)。Full GC 一般比Minor GC慢上10倍以上。
5.2 GC日志信息
通过上面oom的案例,是不是觉得日志有些看不懂,没关系,通过下边的图你就知道如何阅读GC的日志信息。
(1) YGC的相关参数
(2) FGC的相关参数
5.3 GC的四大算法
1.复制算法
2.标记清除
3.标记压缩
4.分代收集算法