Java 简明教程
Java - Z Garbage Collectors (ZDC)
What is ZGC?
ZDC 表示 Z 垃圾收集器。Z 垃圾收集器 ZDC 随 Java 11 引入,作为低延迟垃圾收集机制。ZGC 在 Java 11 中作为实验功能引入,因为开发者社区认为过大而无法提早发布。ZGC 确保垃圾收集暂停时间不依赖于堆大小。无论堆大小是 2MB 还是 2GB,它都永远不会超过 10 毫秒。
但是 ZGC 限制向操作系统返回未使用的堆内存,如同其他 HotSpot VM GC,如 G1 和 Shenandoah。
Java 15 使 ZGC(Z 垃圾收集器)成为标准功能。它在 Java 15 之前一直是实验功能。它是一种低延迟和高度可伸缩的垃圾收集器。
ZGC 性能极佳,即使在海量数据应用程序(例如机器学习应用程序)中也能高效工作。它确保在由于垃圾收集而处理数据时不会出现长时间暂停。它支持 Linux、Windows 和 MacOS。
Features of Z Garbage Collector
使用 Java 16,ZGC 线程栈处理从安全点移至并发阶段,并极大地提高了其效率。以下是在此后对垃圾收集进行的增强,例如:
-
ZGC 将未提交的内存默认返回给操作系统,直到达到最大堆大小。
-
ZGC 在减小内存占用方面提升了性能。
-
ZGC 现在支持 16 TB 的堆大小,与 4TB 大小限制相比。
-
线程栈处理已从 ZGC 安全点移出。
-
栈处理变得懒惰、协作、并发和增量。
-
所有其他每个线程的根处理均已从 ZGC 安全点中删除。
-
HotSpot 子系统可以延迟处理堆栈。
-
Concurrent class unloading
-
Uncommiting of unused memory
-
支持类数据共享
-
NUMA Awareness
-
Multithreaded Heap Pre-touch
-
最大堆大小限制从 4 TB 增加到 16 TB。