Java 在启动参数中开启 JFR 指定事件采集
Java JFR About 1,385 wordsJFR 配置
default.jfc配置内容片段。
<event name="jdk.VirtualThreadStart">
<setting name="enabled">false</setting>
<setting name="stackTrace">true</setting>
</event>
<event name="jdk.VirtualThreadEnd">
<setting name="enabled">false</setting>
</event>
<event name="jdk.MethodTrace">
<setting name="enabled">true</setting>
<setting name="filter" control="method-trace"></setting>
<setting name="threshold">0 ms</setting>
<setting name="stackTrace">true</setting>
</event>
<event name="jdk.MethodTiming">
<setting name="enabled">true</setting>
<setting name="filter" control="method-timing"></setting>
<setting name="period">endChunk</setting>
</event>
启动参数
开启 jdk.VirtualThreadStart
使用EventName+#+SettingName来指定需要启用的事件。
java -XX:StartFlightRecording:jdk.VirtualThreadStart#enabled=true -jar app.jar
开启 method-timing
使用setting中的control配置名称,指定需要统计的类。
java -XX:StartFlightRecording:method-timing=@org.springframework.web.bind.annotation.RestController,jdk.MethodTiming#period=5s -jar app.jar
JFR check
使用jcmd中的JFR.check,并指定verbose=true,查看启动参数是否生效。
PS jdk\openjdk-25> jcmd.exe 1240 JFR.check verbose=true
1240:
Recording 1: name=1 maxsize=250.0MB (running)
Method Timing (jdk.MethodTiming)
[period=5 s,filter=@org.springframework.web.bind.annotation.RestController,enabled=true]
Method Trace (jdk.MethodTrace)
[threshold=0 ms,stackTrace=true,filter=,enabled=true]
...
Views: 3 · Posted: 2026-01-03
———         Thanks for Reading         ———
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...