Есть ли способ проверить, поддерживает ли конкретный jdk (Oracle или OpenJDK) Java Flight Recorder? - PullRequest
0 голосов
/ 21 апреля 2020

Есть ли способ проверить, поддерживает ли конкретный jdk (Oracle или OpenJDK) Java Flight Recorder? Я пытался запустить мое приложение на OPEN JDK 8 следующим образом

java -XX: StartFlightRecording

Но это не работает на OPEN JDK 8. Я получаю следующую ошибку Нераспознанная опция VM -XX: + UnlockCommercialFeatures

, но не работает

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Один из способов проверить, поддерживает ли JVM JFR:

$ jdb

Откройте вторую оболочку.

$ jcmd

Запомните pid процесса jdb и выполните:

$ jcmd <pid> help

Если список JVM диагностирует c команды, начинающиеся с JFR, это поддерживается. Если в JDK отсутствует jcmd, JFR не поддерживается (за исключением случаев, когда JVM является JRockit, в этом случае jcmd называется jrcmd, а команда для поиска - start_flightrecording).

0 голосов
/ 21 апреля 2020

Вам необходимо «разблокировать коммерческие функции», как описано здесь: 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
...