GC垃圾回收器
1:传统回收器
1.1:serial
如上图所示:每当进行GC操作时,就将所有的用户线程停下来,然后运行一个GC线程进行垃圾回收,显然效率慢,延迟高。
1.2:parallel
为了改进串行的缺点,使用并行的垃圾回收方法,当进行垃圾回收时,不仅仅开启一个线程用来垃圾回收,而是开启多了线程进行垃圾回收,这样就可以提高回收效率,但是也必须停止所有其他用户线程。
1.3:CMS
再度为了优化并行垃圾回收方法,我们在第一次阶段只进行一个线程的mark标记线程,然后恢复用户线程,其中依然保持一个垃圾回收线程,然后在每一个用户线程中进行在再标记,然后垃圾回收线程和用户线程并行进行垃圾回收和用户任务。
1.4:G1
2:G1垃圾回收器
2.1:特点
软实时,低延时,可设定目标,参数:MAXGCPauseMills = N,用于设定最大的延时目标。
适合用于较大堆的垃圾回收器,用于替代CMS,在jdk9以后就是默认的GC了。
2.2:GC Fullly Young
2.3:GC Old
2.4:G1