原文地址:https://blog.csdn.net/weixin_43925059/article/details/107106260

G1相对CMS的优势:

1、G1在压缩空间方面有优势。

2、G1通过将内存空间分成区域(Region)的方式避免内存碎片的问题。

3、Eden、Survivor、Old区不再固定,在内存使用效率上来说更灵活。

4、G1可以通过设置预期停顿时间(Pause Time)来控制垃圾收集时间,避免应用雪崩现象。

5、G1在回收内存后会马上同时做合并空闲内存的工作,而CMS默认是在STW(stop the world)的时候做。

6、G1会在young GC中使用,而CMS只能在老年代中使用。

G1适合的场景:

1、服务端多核CPU、JVM内存占用较大的应用。

2、应用在运行过程中会产生大量的内存碎片,需要经常压缩空间。

3、想要更可控、可预期的GC停顿周期;防止高并发下应用的雪崩现象。