最新的G1垃圾回收器的工作原理,你能聊聊吗?
1、ParNew + CMS的组合让我们有哪些痛点?
那么我们先来分析一下目前ParNew + CMS带给我们的痛点是什么?
Stop the World,这个是大家最痛的一个点!
无论是新生代垃圾回收,还是老年代垃圾回收,都会或多或少产生“Stop the World”现象,对系统的运行是有一定影响的。
在这个基础之上,G1垃圾回收器就应运而生了,他可以提供比“ParNew + CMS”组合更好的垃圾回收的性能。
2、G1垃圾回收器
G1垃圾回收器是可以同时回收新生代和老年代的对象的,不需要两个垃圾回收器配合起来运作,他一个人就可以搞定所有的垃圾回收。
他最大的一个特点,就是把Java堆内存拆分为多个大小相等的Region
然后G1也会有新生代和老年代的概念,但是只不过是逻辑上的概念
也就是说,新生代可能包含了某些Region,老年代可能包含了某些Reigon,如下图。
而且G1最大的一个特点,就是可以让我们设置一个垃圾回收的预期停顿时间