Java Mission Control Listener?

时间:2017-07-17 01:32:30

标签: java performance profiling jfr java-mission-control

我目前有一些我想要分析的Java代码。在阅读了一些有希望的事情后,我决定使用Java Mission Control。但是,到目前为止,我所咨询过的每一个资源都告诉我,首先要开始我想要分析的过程,然后才能"附加"或者在Mission Control运行之后对其进行配置(例如来自oracle的视频:https://youtu.be/WMEpRUgp9Y4?t=14m56s)。

有没有办法从一开始就进行分析来启动流程?感谢

3 个答案:

答案 0 :(得分:0)

启动此过程时,有一种方法可以启动分析记录。

示例:运行分析记录10分钟。

java -XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:StartFlightRecording=duration=10m,name=Test,filename=recording.jfr,settings=profile -jar target/highcpu-0.0.1.jar

有关详细信息,请参阅我的文章:Using Java Flight Recorder

答案 1 :(得分:0)

它没有很好的记录,但有可能。 你需要使用这个jvm选项

-XX:+ UnlockCommercialFeatures -XX:+ FlightRecorder -XX:FlightRecorderOptions =

前两个是强制性的,而最后一个需要配置各种参数,您可以找到解释here。 理解每个参数的含义并不简单,但通过一些试验和错误,你可以很容易地找到一套好的选项。

就像参考一样,这是一个最小的功能配置:

java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=defaultrecording=true,disk=true,repository=/tmp,maxage=6h,settings=default MyApp

答案 2 :(得分:0)

JDK 11:

-XX:StartFlightRecording

JDK 9,JDK 10:

-XX:+UnlockCommercialFeatures
-XX:StartFlightRecording

JDK 8u40,

-XX:+UnlockCommercialFeatures
-XX:StartFlightRecording=name=whatever

JDK 7u4,JDK 8u20:

-XX:+UnlockCommercialFeatures 
-XX:+FlightRecorder 
-XX:StartFlightRecording=name=whatever

如果你想避免一起附加到进程,你可以指定一个文件名,即-XX:StartFlightRecording = filename = rec.jfr,然后在一段时间后通过设置持续时间来转储录音,即duration = 60s,或者如果你只想在JVM退出时发生它:

 -XX:StartFlightRecording=
 filename=rec.jfr,dumponexit=true

您可以在JMC中打开然后打开录制文件。在JDK 11中,这已经进一步简化,因此您只需指定:

 -XX:StartFlightRecording:filename=c:\recs

并且文件名将在指定的目录中生成,并在JVM退出时自动转储。