做五金生意什么网站做比较好,网站开发在线浏览pdf,万能进销存软件免费版,手机怎么创建自己的网页背景
在jdk17中已经将ZGC从实验性产品升级到正式产品功能#xff0c;达到亚毫秒级停顿#xff0c;毫不留情地将parallel和G1拉开了数量级的差别#xff0c;无论是平均停顿还是最大停顿时间都能毫不费劲地控制在10ms内。 《深入理解Java虚拟机》在书中这样定义#xff1a;Z…背景
在jdk17中已经将ZGC从实验性产品升级到正式产品功能达到亚毫秒级停顿毫不留情地将parallel和G1拉开了数量级的差别无论是平均停顿还是最大停顿时间都能毫不费劲地控制在10ms内。 《深入理解Java虚拟机》在书中这样定义ZGC收集器是一款基于Region内存布局的使用了读屏障、染色指针和内存多重映射等技术来实现可并发的标记-整理算法的以低延迟为首要目标的一款垃圾收集器。
jdk1.8中使用的Parallel Scavenge回收器
介绍
ZGC中取消了分代的设计并将内存空间按页面的形式来分ZGC的垃圾回收线程和业务线程同时运行ZGC是一个高度并发的垃圾回收器多个线程进行回收只有短暂的STW同步暂停。 在ZGC中使用了标记-复制算法。 STW stop the world ZGC 周期由三个 STW 暂停和四个并发阶段组成标记/重新映射( M/R )、并发引用处理( RP )、并发转移准备( EC ) 和并发转移( RE ) ZGC只有三个阶段是STW的其他阶段完全并发。以往的垃圾回收器在转移时业务线程是不能访问的在进行复制的时候都是需要STWZGC使用到的着色指针Colored Pointer和读屏障Load Barrier技术可以让所有线程在并发的条件下就指针的颜色 (状态) 达成一致而不是对象地址。
着色指针
指针为64位结构使用4位用来标记位置四位后面的是用来存地址位地址位的大小决定了ZGC最大支持多少堆内存。四个颜色位为Finalized ( F )、Remapped ( R )、Marked1 ( M1 ) 和Marked0 ( M0 )。将在gc过程中用到。 如下图地址位为42表示最大支持4TB的堆内存。
读屏障
读屏障解决了并发转移时对象指针更新的问题转移期间移动的对象被其他对象所引用对象被引动了其他就找不到这个对象了。 ZGC中通过转发表来将转移前旧的地址映射到新的地址。
执行过程
1、初始标记阶段STW1 分配新页给业务线程创建对象。 设置GCRoot的着色指针为M0/M1。M0 M1交替使用。
2、并发标记M/R 从GCROOT出发标记存活对象并更新页面的活跃度信息用来后面找转移中间页的。
3、再标记STW2) 对可能遗漏的对象再次标记
4、并发转移准备EC) 选择一个垃圾比较多的页面作为页面转移集
5、初始转移STW3) 设置转移的视图为remmaped 从GC Roots出发进行转移。
6、并发转移RE 这个阶段会写对象转发表的内容并且转移完成旧地址和新地址的映射。