编程文汇

jdk11发布了ZGC


#1

jdk11带来了一个实验性的GC

ZGC的官方目标:

  • Pause times do not exceed 10ms
  • Pause times do not increase with the heap or live-set size
  • Handle heaps ranging from a few hundred megabytes to multi terabytes in size

GC暂停最大(不是平均)时间在10ms以内
暂停不会随着内存和运行时间的增加而增大
支持的内存可以从几百M到几T。

真是神器,让java程序使用超大内存成为可能,基本消除了jvm优化工作。为java开启了更多应用场景,比如开发游戏服务器、开发缓存服务器。只要程序可以容忍最大10ms的延迟,就可以使用java来开发。

试用ZGC

  • 只能在linux上用

  • 开启zgc
    -XX:+UnlockExperimentalVMOptions -XX:+UseZGC

    • 查看gc日志:
      -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -Xmx<size> -Xlog:gc

    • 看详细gc日志:
      -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -Xmx<size> -Xlog:gc*

貌似还有另外一个GC: Shenandoah

也只能再linux上使用。看官方测试延迟大概再50ms以下。
https://wiki.openjdk.java.net/display/shenandoah/Main