天天看点

IDEA Java Flight Recorder 初探,截图分析

写在前面

当我在通过IDEA尝试执行 Run ‘xxx’ With 'Java Flight Recorder ',控制台抛出错误(编译期间出错),当我试着去解决这个问题,发现了一个新的知识,Java Flight Recorder(Java飞行记录)

Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Error: To use 'FlightRecorder', first unlock using -XX:+UnlockCommercialFeatures.      

一、简介 JFR(Java Flight Recorder)

  • Java Flight Recorder是一款优秀的java应用诊断工具,以前是商业版的特性,在java11之后版本开源,它导出的jfr文件可以用Java Mission Control来分析。
  • JDK11之后内置了相关API,可以用来解析jfr文件,也可以在应用程序自定义事件发布出来
  • JFR可以采用JVM命令启动,也可以使用jcmd的JFR.开头的命令在运行时操作

二、IDEA 运行调试 JFR

测试环境 springboot 2.0.8 + IntelliJ IDEA 2019.2.4

直接 Run ‘xxx’ With 'Java Flight Recorder ',控制台会报错,需要以下配置

2.1、IDEA启动配置

配置参数

VM options: -XX:+UnlockCommercialFeatures      
IDEA Java Flight Recorder 初探,截图分析

2.2、运行 Run ‘xxx’ With 'Java Flight Recorder ’

IDEA Java Flight Recorder 初探,截图分析

配置台会看到

IDEA Java Flight Recorder 初探,截图分析

控制台下方会配有 Profiler 栏

IDEA Java Flight Recorder 初探,截图分析

2.3、查看堆栈、线程、IO等参数

在 Profiler 栏中,点击 Stop Profiling and Show Result ,可看到如图数据

IDEA Java Flight Recorder 初探,截图分析
IDEA Java Flight Recorder 初探,截图分析

这里会有很多 系统类的参数,线程,IO,类加载等等,右侧黄色部分,是一个矢量图,

2.4、导出JFR文件

2.5、具体参数详细,待研究中