perf diff:回归对比
更新时间:2026-10-01。怀疑某次改动让某函数变慢,perf diff 用两份采样给出符号级变化。
一、用法
bash
perf record -o a.data -- ./prog # 基线
perf record -o b.data -- ./prog # 改动后
perf diff a.data b.data按符号列出周期差和占比变化,正/负表示变慢/变快,优先看差异大且稳定的函数。
二、可比性与噪声
两次采样的事件、频率、工作负载输入要一致;样本少的符号差异可能是随机抖动,需 -r 重复或提高采样确认。它与差分火焰图互补(数值 vs 形状)。

三、常见坑
- 两次负载/采样条件不同导致误判。
- 对小样本差异下定论。
- strip 后符号对不上。
小结
perf diff 做版本间符号级回归,关键在采样一致和对噪声保持警惕。下一篇 perf annotate 汇编级深入。
总结
怀疑某次改动让函数变慢时,在一致条件下(相同事件、频率、工作负载输入、带符号二进制)各 record 一份 perf.data,用 perf diff a.data b.data 即可按符号列出周期差和占比变化、正负表示变慢/变快,优先查差异大且稳定的函数;关键约束有二:两次采样条件不同会直接误判,而样本少的符号差异可能只是随机抖动、需 -r 重复或提高采样确认;它与差分火焰图互补——diff 看符号数值、火焰图看全栈形状,也可接入 CI 做回归门禁。