Pep*_*ijn 16 java garbage-collection
除了Azul之外,我所知道的所有GC都有点并发,但至少有一些小的世界组件.为什么没有更像GC的像Azul?
Azul是否已将其技术申请专利,以至于无法做到这一点?
或者,无休止操作所需的读/写障碍会产生如此大的开销,以至于它们对大多数工作负载来说都是不切实际的?
实现垃圾收集器非常棘手,并且没有多少应用程序能够真正证明无暂停收集器的合理性.正如您所提到的,读/写障碍会带来相当高的开销,如果您绝对需要低延迟并且愿意接受吞吐量,那么您只需要支付.
也就是说,在这个JEP中正在实施一个名为Shenandoah的低停顿GC:http://openjdk.java.net/jeps/189.作为一名Java程序员,我希望它能在几年后推出.
从 Java 11 开始,有一个新的Z 垃圾收集器(ZGC) 可用于 Linux/x64 JDK(自 Java 14 起的 Windows/macOS):
Z 垃圾收集器,也称为 ZGC,是一种可扩展的低延迟垃圾收集器,旨在满足以下目标:
- 暂停时间不超过10ms
- 暂停时间不会随着堆或实时设置大小的增加而增加
- 处理大小从几百兆字节到数 TB 的堆
您可以通过指定以下 JVM 参数来启用 ZGC:
-XX:+UnlockExperimentalVMOptions -XX:+UseZGC
Run Code Online (Sandbox Code Playgroud)
(对于 Java 15+,-XX:+UnlockExperimentalVMOptions没有必要)
此外,从 Java 12 开始,Shenandoah GC可用于所有平台。ShenandoahGC 与 ZGC 具有相似的特性,但其实现方式不同。
-XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC
Run Code Online (Sandbox Code Playgroud)
(对于 Java 15+,-XX:+UnlockExperimentalVMOptions没有必要)
Shenandoah GC 还向后移植到 Java 11 (11.0.9) 和 Java 8(只有 JDK 8 的 RedHat 版本包括 Shenandoah)。
| 归档时间: |
|
| 查看次数: |
1867 次 |
| 最近记录: |