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

全采样分析模式下如何按含类A的栈轨迹过滤分析类?

实现指定调用链的性能分析方案

这个需求完全可以实现,核心是利用栈轨迹级别的过滤规则,而非简单的类/方法匹配过滤,既能保留目标调用链的完整耗时数据,又能排除无关调用控制数据量。

具体实现思路与操作

不同性能分析工具的配置逻辑类似,核心都是「仅保留包含A的完整栈轨迹」:

  • AsyncProfiler:
    启动采样时指定栈包含规则,并保留完整调用树:

    ./profiler.sh start -e cpu -f profile.html --include 'A.*' --calltree
    

    该命令会只收集栈中存在A类方法的采样样本,同时完整展示A→B→C的调用链路耗时,所有不经过A的B/C调用都会被排除。

  • JProfiler/VisualVM:

    1. 新建Full-Sampling采样会话,进入过滤设置界面
    2. 添加栈包含规则,输入A类的方法签名(比如com.example.A.*)
    3. 勾选「保留完整调用栈」选项(部分工具默认就是此逻辑)
      配置完成后,工具会自动过滤掉所有不经过A的调用,同时完整展示A触发的整个调用链的详细耗时。

原理说明

这种过滤方式的核心是:采样时只记录栈轨迹中存在A方法的样本,并且保留这些样本的完整调用栈信息。既不会像单纯过滤A那样丢失B/C的耗时数据,又能彻底排除SomeOtherClass调用B/C这类无关数据,完美平衡数据完整性和数据量大小。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 12:17:34