【问题标题】:The risks of using PGO (profile-guided optimization) with production environment在生产环境中使用 PGO(profile-guided optimization)的风险
【发布时间】:2012-10-08 07:07:00
【问题描述】:

我有一个系统(Linux 和 C++)进行密集的信号/图像处理操作。我想使用 PGO 来提高我们应用程序的性能。

在使用 PGO 时我应该注意哪些风险/潜在问题?

单元测试 + E2E 测试是否足以验证 PGO 没有破坏任何东西?

【问题讨论】:

  • 我在 Windows 上使用过类似的东西。非常有用和乐于助人。没有缺点。
  • 单元测试 + E2E 测试是否足以验证 PGO 没有 brake 任何东西? => 哦,真是讽刺!我相信你的意思是 break ;)
  • 你认为什么是“打破”?优化器错误?发现潜在的竞争条件?悲观代码?关于后者,请参见此处:stackoverflow.com/questions/7834752
  • 你提到的所有点我都会认为是“休息”。
  • @KirillKobelev 将您的评论作为答案,以便我接受。

标签: c++ optimization gcc verification pgo


【解决方案1】:

Microsoft 的系统会根据使用情况统计信息修改条件跳转,并将常用的代码片段压缩为更少的页面。这实际上将有效内存占用压缩了数倍,并将 CPU 消耗降低了 20-50%。

这个系统在用户模式和内核模式下都被广泛使用。这个系统的质量非常高。在 100% 的情况下,它正确地完成了它的工作。我什至看不到轻微的缺点。

其他类似的系统可能不如 Microsoft 的可靠。微软的那个非常好。

【讨论】:

    猜你喜欢
    • 2012-12-02
    • 2021-06-28
    • 1970-01-01
    • 2013-06-24
    • 1970-01-01
    • 2017-03-09
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多