Java Flight Recorder(JFR)生成的性能分析

Java的.jfr文件是Java Flight Recorder(JFR)生成的性能分析记录文件,可以用JDK自带的工具或图形化工具打开分析。推荐使用JDK Mission Control(JMC),它可以直观地分析CPU占用、内存分配、GC、线程阻塞、锁竞争和方法执行耗时。


1. 使用JDK Mission Control(JMC)打开

操作步骤:

  1. 下载并安装JDK Mission Control
  2. 启动JMC
  3. 点击File → Open File
  4. 选择你的.jfr文件
  5. 等待加载完成,即可查看性能分析报告

下载地址:

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 慢方法