Java Flight Recorder(JFR)生成的性能分析
Java的.jfr文件是Java Flight Recorder(JFR)生成的性能分析记录文件,可以用JDK自带的工具或图形化工具打开分析。推荐使用JDK Mission Control(JMC),它可以直观地分析CPU占用、内存分配、GC、线程阻塞、锁竞争和方法执行耗时。
1. 使用JDK Mission Control(JMC)打开
操作步骤:
- 下载并安装JDK Mission Control
- 启动JMC
- 点击
File → Open File - 选择你的
.jfr文件 - 等待加载完成,即可查看性能分析报告
下载地址:
2. 使用命令行查看JFR
JDK自带jfr命令。
查看文件概要:
jfr summary recording.jfr
查看所有事件:
jfr print recording.jfr
只查看CPU采样事件:
jfr print --events jdk.ExecutionSample recording.jfr
导出为JSON:
jfr print --json recording.jfr > recording.json
查看支持的事件类型:
jfr metadata recording.jfr
注意:
jfr命令通常在JDK的bin目录下。
3. 重点分析哪些指标
| 分析项目 | 重点关注 | 可能发现的问题 |
|---|---|---|
| CPU | Execution Sample | CPU热点方法 |
| 内存 | Object Allocation | 对象频繁创建 |
| GC | Garbage Collection | GC频繁、停顿过长 |
| 线程 | Thread Park、Thread Sleep | 线程等待 |
| 锁竞争 | Java Monitor Enter | synchronized锁竞争 |
| IO | Socket Read、File Read | 网络或磁盘阻塞 |
| 方法耗时 | Method Profiling | 慢方法 |