使用maxsize = 1g的飞行记录仪仍然会返回缺少时间窗口的跟踪

时间:2016-02-22 12:27:35

标签: java jvm profiling jfr

我有一个非常耗费资源,基于java-8的命令行应用程序,我经常使用飞行记录器进行分析。我经常注意到的是,当我在任务控制中打开飞行记录器文件(jfr)时,我看到该过程运行的完整时间跨度,但是我错过了这个时间窗口的前60-70%的事件。

我尝试过使用飞行记录仪选项,这是我目前正在使用的内容:

  

-Djava.library.path = / some / path / lib -Xmx50G -XX:+ UnlockCommercialFeatures -XX:+ UseG1GC -XX:+ FlightRecorder -XX:StartFlightRecording = name = MyRecording,settings = profile -XX:FlightRecorderOptions = defaultrecording =真,MAXSIZE = 1G,最大生存周期= 1H,dumponexit =真,dumponexitpath = /一些/路径“

我希望这会自动捕获录制内容,录制内容会在进程完成时保存到/ some / path,并且保存的文件最多可达到1 GB。有谁知道供应的正确选择是什么?

1 个答案:

答案 0 :(得分:2)

我会回答我自己的问题。经过一些实验和反复试验后,您似乎需要添加'disk = true'。

所以最终的java args成为:

  

-Djava.library.path = / some / path / lib -Xmx50G -XX:+ UnlockCommercialFeatures -XX:+ UseG1GC -XX:+ FlightRecorder -XX:StartFlightRecording = name = MyRecording,settings = profile -XX:FlightRecorderOptions = defaultrecording =真,磁盘=真,MAXSIZE = 1G,最大生存周期= 1H,dumponexit =真,dumponexitpath = /一些/路径“