java - 如何在 MacOS 上为 OpenJDK13 启用 Shenandoah 垃圾收集器

标签 java macos garbage-collection java-13 shenandoah

我的 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

最佳答案

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

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

关于java - 如何在 MacOS 上为 OpenJDK13 启用 Shenandoah 垃圾收集器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59462343/

相关文章:

java - 从 CSV 文件读取时超出 GC 开销限制

java - 多次调用同一个方法而不覆盖以前的值

java - Maven 不能在 jenkins 上运行(但它可以通过 eclipse 和命令行运行)

python - 属性错误 : 'NoneType' object has no attribute 'time' paramiko

javascript - 理解这个 JS WeakRef polyfill 实现

java - 在 Java 中实例化对象时产生奇怪的垃圾

java - 使用 Java 将任何文件转换为十六进制并再次转换回来

java - 如何将创建的文件保存到同一项目目录? java

cocoa - 将 CVImageBufferRef 转换为 PNG

php - 在 OS X 上的 PHP 5 上安装 OAuth PECL 包