JDK Mission Control打开JFR文件内存标签无内容,需配置哪些参数?
解决JFR文件内存标签页无内容的配置参数
你当前只启用了JFR基础功能,但没有配置内存相关事件的采集规则,默认的基础配置不会采集足够的内存数据,导致JMC的内存标签页无内容。需要补充以下参数:
情况1:启动程序时直接开始录制JFR文件
使用settings=profile预设配置(该配置包含完整的内存事件采集,比如对象分配采样、GC事件、堆内存统计等),完整启动命令示例:
# JDK 8及之前版本 java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:StartFlightRecording=filename=myapp.jfr,settings=profile ... myapp # JDK 9+版本(JFR已开源,无需UnlockCommercialFeatures参数) java -XX:+FlightRecorder -XX:StartFlightRecording=filename=myapp.jfr,settings=profile ... myapp
情况2:程序运行中动态触发JFR录制
- 启动程序时保留现有参数(JDK9+可去掉
-XX:+UnlockCommercialFeatures):
java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder ... myapp
- 运行时通过
jcmd命令触发录制,指定settings=profile配置:
jcmd <你的进程PID> JFR.start filename=myapp.jfr settings=profile duration=10m
(duration=10m是可选的录制时长,按需调整)
关键说明
settings=profile是JDK内置的预设配置,专门针对性能分析场景,包含了内存标签页所需的所有事件类型;如果用默认的settings=default,内存相关事件采集极少,会导致页面无内容。- 你也可以自定义JFR配置文件(
.jfc),按需开启内存相关事件,但对于大多数场景,直接用profile预设足够满足需求。
内容的提问来源于stack exchange,提问作者Emrahall
相关产品推荐
相关产品推荐

