背景

一个函数看起来复杂,不代表它是热点。优化之前需要固定请求模型,让采样结果可以解释和复现。

核心判断

  1. 记录二进制版本、构建参数、负载与 CPU 拓扑。
  2. 先看调用树和时间占比,再按假设做一次最小改动。
  3. 同步观察吞吐、尾延迟与分配,避免局部收益换来整体退化。

最小示例

下面保留核心逻辑;业务类型、调用入口和环境配置按项目补齐。

perf record -F 99 -g -- ./service --scenario=steady; perf report --stdio | head -80

边界与误区

无符号或不可靠的栈展开会让火焰图失真。perf 权限、架构和事件支持不同,容器采样前要确认访问范围。

验证方式

同样场景至少重复多次,比较稳定区间;保留原始 perf.data 与符号,让他人能复查,而不是只留下截图。

小结

固定负载、编译选项和采样窗口,先用系统指标定位再用 profiler 解释热点。