0

有没有办法检查特定的 jdk(Oracle 或 OpenJDK)是否支持 Java Flight Recorder?我一直在尝试在OPEN JDK 8上运行我的应用程序,如下所示

java -XX:StartFlightRecording

但这对OPEN JDK 8. 我收到以下错误Unrecognized VM option -XX:+UnlockCommercialFeatures

但不起作用

4

2 回答 2

0

您需要按照此处所述“解锁商业功能”:
https ://docs.oracle.com/javacomponents/jmc-5-4/jfr-runtime-guide/run.htm#JFRUH176

该命令应如下所示:

java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:StartFlightRecording=duration=60s,filename=myrecording.jfr MyApp
于 2020-04-20T23:10:38.930 回答
0

检查 JVM 是否支持 JFR 的一种方法是:

$ jdb

打开第二个外壳。

$ jcmd

记住 jdb 进程的 pid 并执行以下操作:

$ jcmd <pid> help

如果 JVM 列出以 JFR 开头的诊断命令,则支持。如果 JDK 缺少 jcmd,则不支持 JFR(除非它是 JRockit JVM,在这种情况下 jcmd 被称为 jrcmd 并且要查找的命令是 start_flightrecording)。

于 2020-04-22T15:13:23.097 回答