文档目录

Profile-Guided Optimization(PGO)

目标:用实际运行数据反馈编译器,生成针对实际执行路径优化的代码。

  • 6.1 PGO 的三步流程

    • 插桩编译(-fprofile-generate)→ 运行代表性负载 → 优化编译(-fprofile-use)。
  • 6.2 PGO 的优化效果

    • 分支预测准确性提升(编译器按实际频率排布 basic block)。
    • 内联决策改进:频繁调用的函数更可能被内联;冷路径函数被推迟到 .text.unlikely。
    • 指令缓存(I-Cache)命中率改善:热代码连续排放。
  • 6.3 PGO 的工程实践

    • 如何设计代表性测试负载(避免 PGO 针对测试数据过拟合)。
    • 持续集成中的 PGO 流程(训练阶段 → 生产构建分离)。