You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IntelliJ使用Java Flight Recorder做性能分析提示找不到jfr文件如何解决

问题根因

你使用的是OpenJ9版本的AdoptOpenJDK 16,这是导致两个分析工具都失效的核心原因:

  • Async Profiler本身仅支持HotSpot系虚拟机,不兼容OpenJ9,运行必然报错。
  • OpenJ9的JFR实现和HotSpot不通用,IDEA 2021.2版本自动生成的JFR启动参数是针对HotSpot设计的,在OpenJ9上无法触发快照生成逻辑,自然不会输出.jfr文件。

解决方案

方案一:切换为HotSpot版JDK(推荐)

这是兼容性最好、后续不需要额外调整配置的方案:

  • 下载Adoptium(原AdoptOpenJDK)的HotSpot版JDK 16或更高版本,替换当前的OpenJ9版本JDK。
  • 在IDEA的「项目结构」和对应测试的运行配置中,将JDK指定为新下载的HotSpot版JDK。
  • 不需要修改其他Profiler配置,直接重新启动测试的性能分析动作,即可正常生成JFR或Async Profiler快照。

方案二:保留OpenJ9 JDK的调整方法

如果你必须使用OpenJ9版本的JDK,可以手动修改JFR参数适配:

  • 打开对应测试的运行配置,找到VM参数输入区域,修改原有JFR相关参数:
    替换原有-XX:StartFlightRecording=name="TestName_date_time",settings="default",dumponexit=true,filename="/Users/me/myDirectory/TestName_date_time.jfr"
    为OpenJ9适配的参数:
    -Xdump:system:events=vmstop,file=/Users/me/myDirectory/TestName_date_time.jfr -XX:+FlightRecorder -XX:StartFlightRecording=name=TestName_date_time,settings=default
    
  • 注意:OpenJ9不支持Async Profiler,这个是工具原生限制,没有解决方案。

额外检查项

  • 确认快照存储目录的读写权限,执行命令chmod 755 /Users/me/myDirectory确保当前用户有目录的读写权限。
  • 可以升级IDEA到2022.1及以上版本,2021.2版本对JDK 16+的性能分析工具存在多个已知兼容Bug,升级后可以避免很多异常问题。
  • 如果你的测试运行时长小于1秒,可以在测试代码末尾临时添加1-2秒的等待逻辑,避免进程退出过快,JFR还没来得及写入快照文件。

内容的提问来源于stack exchange,提问作者Itchy。

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 15:45:01