【问题标题】:Does OpenJDK 11 support Java Flight Recorder?OpenJDK 11 是否支持 Java Flight Recorder?
【发布时间】:2021-12-27 06:47:02
【问题描述】:

关注this post

openjdk 11 原生支持 jfr

并由the features list of OpenJDK 11确认:

328:飞行记录器

不过,来自this DZone article,关于使用JFR 链接选项-XX:+UnlockCommercialFeatures

OpenJDK 无法识别此选项

当我尝试前任时。使用 Gradle:./gradlew clean -Dorg.gradle.jvmargs="-XX:+UnlockCommercialFeatures" 我明白了

进程命令行:C:\Program Files\AdoptOpenJDK\jdk-11.0.11.9-hotspot\bin\java.exe -XX:+UnlockCommercialFeatures (...)

无法识别的 VM 选项“UnlockCommercialFeatures”

我在这里错过了什么?

【问题讨论】:

    标签: java openjdk-11 jfr


    【解决方案1】:

    JFR 是 Oracle Java 直到 Java 1.8 的商业功能,需要特别启用(使用 -XX:+UnlockCommercialFeatures)。

    在 Java 11 及更高版本中,它不再是商业功能,因此您不需要此标志。

    实际上链接的文章指出:

    JFR 封装差异
    Oracle JDK 11 在使用 -XX:+UnlockCommercialFeatures 选项时会发出警告,而 OpenJDK 无法识别此选项并报告错误。

    并且作者展示的下面的示例没有使用-XX:+UnlockCommercialFeatures

    【讨论】:

    • 没有更多错误,谢谢。一个附带问题以防万一:我运行 ./gradlew -Dorg.gradle.jvmargs="-XX:+FlightRecorder -XX:StartFlightRecording=duration=30s,filename=my_recording.jfr -XX:FlightRecorderOptions=stackdepth=256" clean 并没有创建 .jfr 文件,可能是什么原因?
    • @Coli 我认为它是被创建的——它只是不在你要找的地方。当启动 gradle 时,FlightRecorder-Option 适用于 gradle 守护进程,并且 gradle 守护进程的工作目录类似于 ~/.gradle/daemon/<gradleversion>
    • 找到了,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-27
    • 2019-03-24
    • 1970-01-01
    相关资源
    最近更新 更多