c – 您通常如何设置编译器的优化设置?

前端之家收集整理的这篇文章主要介绍了c – 您通常如何设置编译器的优化设置?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
您通常将编译器设置为针对最大速度或最小代码大小进行优化吗?或者您手动配置个别优化设置?为什么?

我注意到大多数时候人们倾向于将编译器优化设置保留为默认状态,其中visual c表示最大速度.
我一直认为默认设置更多地与基准测试相关,基准测试往往是完全适合L2缓存的小程序,而不是整体性能最佳,因此我通常将其设置为最小尺寸.

解决方法

作为一名Gentoo用户,我在整个操作系统上尝试了很多优化,并且在 Gentoo forums上有关于它的无休止的讨论.海湾合作委员会的一些好标志可以在 wiki找到.

简而言之,优化尺寸在有限RAM的旧Pentium3笔记本电脑上效果最佳,但在我的主机台式机上使用Core2Duo,-O2可以获得更好的效果.

如果您对最优化的x86(32位)特定标志感兴趣,还有一个small script.

如果您使用gcc并且确实想要优化特定应用程序,请尝试ACOVEA.它运行一组基准测试,然后使用所有可能的编译标志组合重新编译它们.在网站上有一个使用霍夫曼编码的例子(越低越好):

A relative graph of fitnesses:

   Acovea Best-of-the-Best: **************************************                (2.55366)
     Acovea Common Options: *******************************************           (2.86788)
                       -O1: **********************************************        (3.0752)
                       -O2: ***********************************************       (3.12343)
                       -O3: ***********************************************       (3.1277)
           -O3 -ffast-math: **************************************************    (3.31539)
                       -Os: *************************************************     (3.30573)

(注意它发现-Os在这个Opteron系统上是最慢的.)

猜你在找的C&C++相关文章