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

如何在AZUL JFR Profiler中获取完整方法调用栈?

解决Azul JFR Profiler调用栈不完整的问题

调整采样配置

  • 检查JFR的采样深度设置:默认采样深度可能有限,在录制配置里找到「Stack Depth」选项,将数值调高(比如从默认64调整到128或更高),确保能捕获到更上层的调用链路。
  • 确认采样事件配置:针对Method Profiling Sample这类方法调用相关事件,确保启用完整栈追踪,不要勾选「截断短栈」类优化选项。

规避JIT编译内联影响

  • HotSpot JVM的即时编译(JIT)会内联方法导致栈帧合并,可临时添加JVM参数禁用内联,重新录制JFR数据:
    -XX:-Inline
    
    注意:该参数会影响性能,仅用于排查,生产环境勿长期使用。
  • 也可针对性禁止特定类的内联:
    -XX:CompileCommand=dontinline,com/yourpackage/YourClass.*
    

调整录制事件范围

  • 确保录制包含所有相关线程:检查录制配置的线程过滤规则,取消不必要的限制,避免后台或业务线程的栈追踪被过滤。
  • 适当提高采样频率:如果采样间隔过大可能错过关键链路,可从10ms调整到5ms左右,但注意不要过度增加导致性能开销。

优化工具显示设置

  • 在Azul JFR Viewer中,检查调用栈显示选项:部分视图默认会折叠或过滤系统类(如HashMap所属的java.util包),开启「显示系统类栈帧」类选项,即可看到上层业务方法调用HashMap的完整链路。

内容的提问来源于stack exchange,提问作者Alpit Anand

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 08:45:38