zgc 与g1对比 及 color points含义

zgc对比g1的主要优势
1.我们知道g1的ygc或者mixed gc的evacuation阶段中最耗时stw阶段就是对象复制转移,对象复制转移涉及内存的分配和对象成员变量的复制,非常耗时,zgc可以把这个最长stw阶段的耗时转化成并发执行,也就是和应用线程一起执行,在这个过程中主要是使用了读屏障和color pointer指针来达到并发转移的目的,后面会详细介绍读屏障和color pointer.
2.zgc在进行对象转移的过程中,只需要修改对象指针的几个标志位,相当于g1需要在对象转移时读取对象头来说,少了内存读取的操作,速度更快,不过也正是由于zgc使用了对象指针的几个标志位来完成并发标识和并发转移等的工作,所以zgc不能压缩指针,并且只能运行在基于64位的操作系统上.
3.zgc的内存区域分成三个页面,小页面2M,中页面32M,大页面2的n次方,而g1页面一般分成2048个region,每个region大小是2M/4M/8M
zgc垃圾回收颜色指针
color pointer 主要指的是64位地址空间中的42-44个标志位,42位为1表示使用Mark0视图,第43位为1表示使用Mark1视图,第44位为1表示使用Remapped视图,这三个视图的大小和zgc支持的堆大小一样,都是4T空间,zgc在gc的过程中会转换使用不同的视图,这三个视图其实都对应到了同一个物理视图中,共享同一份物理内存空间,都是作为堆内存的代理,具体含义如下:(0-4T)是堆空间,(4T-8T)是Mark0视图,(8T-12T)是Mark1视图,(12T-16T)是Remapped视图,zgc目前支持的最大堆是4T,同时Mark0,Mark1和Remapped视图通过操作系统函数mmap映射到同一个物理内存地址空间中,这三个视图就是作为用户可以访问的4T空间的代理.
在这里插入图片描述
附:g1中耗时指的是ygc(mixed gc)的对象复制转移阶段的耗时,还有并发标识阶段中初始标识/重新标识/清理阶段的耗时,这些阶段都是stw的

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值