文档目录
性能分析工具链
目标:用工具定位程序瓶颈,而不是靠猜测。
-
7.1
perf—— Linux 性能计数器perf stat:统计模式,看 Cache Miss、IPC、分支预测失败率。perf record+perf report:采样模式,生成 CPU 热点函数。perf top:实时查看当前系统热点。
-
7.2 火焰图(FlameGraph)
- 用
perf script+ Brendan Gregg 的 FlameGraph 工具生成 svg 火焰图。 - 解读火焰图:宽条 = 热点,平顶 = 函数本身耗时,尖顶 = 调用子函数耗时。
- 冰柱图(Icicle Graph)自顶向下的调用链分析。
- 用
-
7.3 Valgrind / Callgrind
callgrind:指令级模拟,精确统计函数调用次数和 L1/L2 缓存命中率。- 适用场景:需要比 perf 更精确的微架构分析。
-
7.4 Google Benchmark 微基准测试
- 编写微基准测试,精确测量纳秒级函数耗时。
DoNotOptimize与ClobberMemory防止编译器优化掉被测代码。