JVM-ZGC Shenandoah

pauseless gc基本情况

使用  读屏障    ,增量并发垃圾回收    提出后jdk11   引入ZGC    JDK12引入Shenandoah GC

主要分为三个阶段:  标记,重定位,重映射     每个阶段都是完全并行的,而且每个阶段都是和业务线程并发执行的。

 

CGC:聚焦于低延迟的垃圾收集器

这是一款低停顿,高并发,基于小堆块 不分代的增量式垃圾收集器   平均GC耗时不到2毫秒

,最坏不超过10毫秒。

 

ZGC特性简介

ZGC最主要的特点:

     最大停顿不超过10ms

     堆内存支持范围广,小到几百mb,大到4TB的超大堆内存

     与G1相比,吞吐量下降不超过15%

      当前只支持linux/X64位平台       

 

像G1和ZGC这种现代的GC算法  只要空闲的堆内存足够多,基本上不触发FGC

 所以很多情况,只要条件允许 加内存才是最有效的解决方式     

 

 

 

 ZGC 引入两项关键技术   着色指针和读屏障

          读屏障:可以理解为一段代码,或者是一个指令,后面挂着对应的函数

           读屏障和着色指针相当于在内存管理和应用程序之间加了一个中间层

            

 

 

Shenandoah GC简介

         java12引入了一款新的垃圾收集器   作为ZGC的另一个选择     超低延迟垃圾收集器   

         特点:管理大型多核服务器,超大型的堆内存。GC线程与应用线程并发执行,使得虚拟机的停顿时间非常的短暂

          

 

 

 

posted @ 2022-04-20 16:16  李文浩learning  阅读(103)  评论(0)    收藏  举报