G1垃圾收集器的优点有哪些?

2020-05-04 21:27:45 java常见问答 10032

G1垃圾收集器现在是很多人的选择收集器的首选,许多人是随大众的选择了G1垃圾收集器,依然有许多人不了解G1垃圾收集器的优点有哪些,下面小编就带大家来看看G1垃圾收集器的那些优点。

为了处理CMS算法所产生碎片以及其它的问题,HotSpot提出了另外一种垃圾回收策略,G1算法。通过参数-XX:+UseG1GC来启用。G1垃圾收集算法主要应用在多CPU大内存的服务中,在满足高吞吐量的同时,竟可能的满足垃圾回收时的暂停时间,该设计主要针对如下应用场景:

垃圾收集线程和应用线程并发执行,和CMS一样

空闲内存压缩时避免冗长的暂停时间

应用需要更多可预测的GC暂停时间

不希望牺牲太多的吞吐性能

不需要很大的Java堆

G1是一款面向服务端应用的垃圾收集器。G1具备如下特点:

1、并行于并发:G1能充分利用CPU、多核环境下的硬件优势,使用多个CPU(CPU或者CPU核心)来缩短stop-The-World停顿时间。部分其他收集器原本需要停顿Java线程执行的GC动作,G1收集器仍然可以通过并发的方式让java程序继续执行。

2、分代收集:虽然G1可以不需要其他收集器配合就能独立管理整个GC堆,但是还是保留了分代的概念。它能够采用不同的方式去处理新创建的对象和已经存活了一段时间,熬过多次GC的旧对象以获取更好的收集效果。

3、空间整合:与CMS的“标记--清理”算法不同,G1从整体来看是基于“标记整理”算法实现的收集器;从局部上来看是基于“复制”算法实现的。

4、可预测的停顿:这是G1相对于CMS的另一个大优势,降低停顿时间是G1和CMS共同的关注点,但G1除了追求低停顿外,还能建立可预测的停顿时间模型,能让使用者明确指定在一个长度为M毫秒的时间片段内。

以上就是今天的java架构师的相关内容,更多相关内容请持续关注本网站吧。