当前位置:  开发笔记 > 编程语言 > 正文

轮廓引导优化(C)

如何解决《轮廓引导优化(C)》经验,为你挑选了2个好方法。

谁知道这个编译器功能?GCC似乎支持这一点.它是如何工作的?潜在收益是多少?在哪种情况下它很好?内环?

(这个问题是具体的,不是关于一般的优化,谢谢)



1> Greg Rogers..:

它通过放置额外的代码来计算每个代码路径的计数次数.当你第二次编译时,编译器使用获得的关于程序执行的知识,它只能在之前猜测.PGO可以为以下方面做些事:

决定应该内联哪些函数,具体取决于调用它们的频率.

决定如何根据以某种方式调用的调用百分比来预测关于"if"语句的哪个分支的提示.

根据每次调用该循环时采用的迭代次数,决定如何优化循环.

在测试之前,你真的不知道这些东西有多大帮助.



2> Dark Shikari..:

在编译我工作的项目x264时,PGO提供了大约5%的速度提升,并且我们有一个内置的系统(make fprofiled).在某些情况下,它可以提供很好的自由速度提升,并且可能有助于提供更多应用程序,与x264不同,它们不像手写程序集.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有