【问题标题】:How to enable Shenandoah Garbage Collector for OpenJDK13 on MacOS如何在 MacOS 上为 OpenJDK13 启用 Shenandoah 垃圾收集器
【发布时间】:2019-12-23 23:38:38
【问题描述】:

我的 Mac 上有最新的 (13.0.1) OpenJDK,但它似乎不包括 Shenandoah。我疯了吗?我知道已经发货了。它适用于我的 Linux 机器。有不同的下载吗?不同的标志?

~ $ java -XX:+UnlockExperimentalVMOptions -XX:+PrintCommandLineFlags -version                                                                                                         
 -XX:G1ConcRefinementThreads=4 -XX:GCDrainStackTargetSize=64 -XX:InitialHeapSize=134217728  
 -XX:MaxHeapSize=2147483648 -XX:MinHeapSize=6815736 -XX:+PrintCommandLineFlags 
 -XX:ReservedCodeCacheSize=251658240 -XX:+SegmentedCodeCache -XX:+UnlockExperimentalVMOptions 
 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseG1GC
openjdk version "13.0.1" 2019-10-15
OpenJDK Runtime Environment (build 13.0.1+9)
OpenJDK 64-Bit Server VM (build 13.0.1+9, mixed mode, sharing)
~ $ java -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:+PrintCommandLineFlags -version                                                                                              
Error occurred during initialization of VM
Option -XX:+UseShenandoahGC not supported

【问题讨论】:

    标签: java macos garbage-collection java-13 shenandoah


    【解决方案1】:

    我认为this Red Hat blog post 可能是相关的,尤其是考虑到 Shenandoah 可以在您的 Linux 机器上运行,而不是 macOS。

    TL;DR:Red Hat 领导了 Shenandoah 的开发,因此 Oracle 犹豫是否将其放入 OpenJDK。因此,并非所有构建都支持它。

    【讨论】:

    • 我已经阅读了几乎所有关于此的博客文章和新闻更新 - 它们都指的是 12 而不是 13。这是 12 中的一个实验性功能,所以你不得不跳过一些障碍。但它在 13 中“降落”,所以它应该在那里。但我猜 Oracle 认为它仍然是“实验性的”,即使有关于它的零文档。我删除了我所有的 JDK 并安装了 AdoptOpenJDK(由 RedHat adoptopenjdk.net 制造)并且它工作正常。伤心!
    • 甲骨文处理新特性的方式绝对令人恼火。很高兴您找到了解决方案。
    • 12 和 13 之间的区别在这里并不重要。 Shenandoah 于 12 年登陆主线 OpenJDK; 13 是 12 中的演变。构建系统默认启用所有支持的 GC,因此每个没有特别禁用 Shenandoah 的构建器都会获得包含它的二进制文件。到目前为止,只有 Oracle (OpenJDK) 构建禁用它。今天,下载任何(Oracle 除外)供应商的二进制文件都会为您提供 >=12 {x86_64, x86_32, aarch64} 的 Shenandoah。
    【解决方案2】:

    如果您想在 MacOS 上使用 Shenandoah,您必须自己构建它,这是大多数人正在做的事情。

    添加这个答案,因为我看到很多人在 MacOS 上寻找 Shenandoah

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-31
      • 1970-01-01
      • 1970-01-01
      • 2018-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-15
      相关资源
      最近更新 更多