文档目录

性能分析工具链

目标:用工具定位程序瓶颈,而不是靠猜测。

  • 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 防止编译器优化掉被测代码。