G1具备以下几种特性
1、并行与并发
G1能充利用CPU、多核环境下的硬件优势,使用多个CPU(CPU或者CPU核心)来缩短Stop-The-World停顿时间。G1收集器可以通过并行和并发的方式让应用程序继续执行。
2、分代收集
虽然G1可以不需要其他收集器配合就能独立管理整个GC堆,但是还是保留了分代的概念。
3、空间整合
与CMS的标记-清理算法不同,G1从整体来看是基于标记-整理算法实现的收集器;从局部上看是基于复制算法实现的。
4、可预测停顿
这是G1相对于CMS的另一个大优势,降低停顿时间是G1和CMS共同关注点,但G1除了追求低停顿外,还能建立可预测的停顿时间模型,能让使用者明确指定在一个长度为M毫米的时间片段(通过参数-XX:MaxGCPauseMills)内完成垃圾收集。
默认的停顿目标为两百毫米,一般来说,回收阶段占到几十到一百甚至接近两百毫米都很正常,但如果把停顿时间调得非常低, 譬如设置为二十毫秒, 很可能出现的结果就是由于停顿目标时间太短, 导致每次选出来的回收集只占堆内存很小的一部分, 收集器收集的速度逐渐跟不上分配器分配的速度, 导致垃圾慢慢堆积。 很可能一开始收集器还能从空闲的堆内存中获得一些喘息的时间, 但应用运行时间一长就不行了, 最终占满堆引发Full GC反而降低性能, 所以通常把期望停顿时间设置为一两百毫秒或者两三百毫秒会是比较合理的。
标签:G1,收集器,停顿,回收,时间,垃圾,CMS,CPU From: https://blog.51cto.com/u_11315052/7951316