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

Vtune硬件事件采样无调用栈:如何配置开启调用栈采集?

VTune H/W Event-Based Sampling 调用栈采集问题解答

我之前也碰到过一模一样的问题,刚好可以帮你理清这个点:

核心结论

H/W Event-Based Sampling(硬件事件采样)默认确实不会采集调用栈。这个设计是为了让硬件采样保持轻量,最小化对目标程序的性能影响——毕竟硬件事件采样的核心是快速统计CPU底层事件(比如指令退休、缓存命中/ miss等),默认配置下优先保证低开销。

开启调用栈采集的配置方法

图形界面操作

  1. 打开VTune,找到你创建的H/W Event-Based Sampling分析任务
  2. 切换到**「高级(Advanced)」**选项卡
  3. 在**「栈收集(Stack Collection)」区域,勾选「启用栈收集(Enable stack collection)」**
  4. 可以根据你的需求调整栈深度(Stack Depth)(默认通常是16或32,深度越大性能开销越高)
  5. 再次确认你的Binary/Symbol Search路径配置正确(你已经自检过一致性,这一步主要是确保符号文件能被正常解析)

命令行操作

如果用命令行运行VTune,可以通过-call-stack参数指定栈深度来开启:

vtune -collect hw-events -call-stack <栈深度值> -- <你的应用程序路径>

举个实际使用的例子:

vtune -collect hw-events -call-stack 32 -- ./my_target_app

额外注意事项

  • 开启栈收集会带来一定的性能开销,因为每次硬件采样触发时都需要捕获当前调用栈,所以如果你的场景对性能敏感度极高,需要权衡开启后的影响
  • 如果是Linux环境,可能需要调整内核参数/proc/sys/kernel/perf_event_paranoid(比如设置为0或-1),确保VTune有足够权限获取栈信息
  • 符号文件是调用栈解析的关键,即使开启了栈收集,如果VTune找不到对应的符号文件,依然无法显示完整的函数名调用栈

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 18:10:31