2016-03-02 3 views
-1

Я запускаю Java Flight Recorder со следующей командой.Как я могу получить последние записи из Java Flight Recorder?

jcmd $PID JFR.start duration=2h filename=my_record.jfr dumponexit=true settings=profile 

Это запись первых 2 часов после запуска.

Например, если он начался в 1:00, он регистрируется с 1:00 до 3:00, даже если я сброшу в 9:00.

Мне нужно получить записи за последние 2 часа, а не от первых.

Например, если это началось в 1:00 и сброшено в 9:00, мне нужно получить записи с 7:00 до 9:00.

Что мне делать?

+0

Это не вопрос о Java ; это вопрос о том, как использовать программу, которая должна быть записана в java. Вам необходимо прочитать документацию этой программы. – FredK

+1

@FredK Java Flight Recorder (JFR) - это инструмент для сбора, диагностики и профилирования данных о запущенном приложении Java. Он интегрирован в виртуальную машину Java (JVM) »(http://docs.oracle.com/ javacomponents/СВК-5-5/JFR-среда-гид/about.htm # sthref7). Речь идет о Java. – hbelmiro

+0

Вы должны иметь возможность использовать JMC для сброса определенного интервала записи. Подключитесь к своему jvm с помощью JVM Browser, разверните ноту Flight Recorder под вашим jvm и щелкните правой кнопкой мыши нужную запись, выберите Dump ... в меню. Мне интересно услышать, работает ли это для вас или нет. – Klara

ответ

1

Вы можете контролировать то, как далеко назад, чтобы сохранить данные, во время или в байтах, с параметрами MaxAge и MaxSize. Например,

jcmd <pid> JFR.start maxage=2h filename=my_recording.jfr dumponexit=true settings=profile 

или из командной строки

java -XX:+UnlockCommercialFeatures 
-XX:StartFlightRecording=maxage=2h,filename=my_recording.jfr, 
dumponexit=true,settings=profile … 

Параметр dumponexit, я думаю, будет работать только с jcmd, если у вас есть JDK 8u40 или более поздней версии

Смежные вопросы