如何从Java飞行记录器获取最后的录音



我用以下命令启动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 获取录音。

我该怎么办?

您可以使用参数 maxagemaxsize 控制将数据保留在多远(以时间或字节为单位)。例如

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 参数仅适用于 JDK 8u40 或更高版本的 jcmd

最新更新