perf 调用栈采集方式

-g 搭配 fp 或 dwarf 采集调用链, 决定火焰图与归因的可用深度。

--call-graph fp基于帧指针, 开销低, 依赖二进制保留帧指针
--call-graph dwarf基于调试信息展开, 覆盖更全, 记录数据更大
--call-graph lbr硬件最后分支记录, 有深度限制

用法

用法
perf record -F 99 -g --call-graph dwarf -p 12345 -- sleep 20

易错点

  • 发行版编译器默认省略帧指针导致 fp 栈不完整
  • 深栈高频采样生成超大文件, 先估算磁盘占用

数据来源与参考

  • man perf-record
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌