ZGC-初识ZGC,主要摘录于官方文档。
目录
ZGC一些概念
1.什么是ZGC?
众所周知,ZGC是一款可伸缩的低延迟的垃圾收集器,主要的设计目标:
.亚毫秒低暂停(一定条件下10毫秒内)。
.暂停时间不会随着堆、存活对象集的大小而增加。
.处理大小从8MB到16TB不等的堆。
2.总览
总览:
.并行
.基于区域
.压缩
.NUMA-aware架构
.颜色指针
.读屏障
3.配置&优化
1.将未使用的内存返回给操作系统:
.默认情况下,ZGC不会将未使用的内存提交返回给操作系统。
.可以使用-XX:-ZUncommit来禁用该特性。
.此外,未使用内存将不会被提交,不能让堆大小缩小到最小堆大小(-Xms)下。
.当最大堆和最小堆的参数配置一致,不生效。
4.NUMA-aware
1.现在多CPU插槽的服务器都是Numa架构,比如两颗CPU插槽(24核),64G内存的服务器,那其中一颗CPU上的12个核,
访问从属于它的32G本地内存,要比访问另外32G远端内存要快得多。
2.ZGC默认开启NUMA,启用NUMA支持通常会显著提高性能。