首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用O3优化级别编译GSL

用O3优化级别编译GSL
EN

Stack Overflow用户
提问于 2016-02-19 11:51:20
回答 1查看 348关注 0票数 1

我的程序在很大程度上依赖于GSL的特殊功能,因此我想让它运行得更快,所以我希望用更高的优化级别编译GSL。

当我编译gsl时,如果我在使用“./ -O2”进行配置时什么都不做,默认的CFLAGS就是"-g -O2“。我想知道为什么gsl只默认到O2的优化级别,因为O3是符合标准的。我试着用"./configure =‘-g -O3'“编译和测试,结果成功了。但我还是不确定是否一切都会成功。

有人能告诉我为什么GSL是默认的O2而不是O3吗?如果我默认为O3,这会很危险吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-19 12:05:10

优化级别3只应用于绝对确定它对库有帮助的情况。

因为该级别激活了优化,这可能会大大增加代码的大小。这意味着在某些情况下,它会创建比使用-O2优化的二进制文件更慢的二进制文件。这种事怎么很少发生。更有可能的是这样的效果,比如大量增加编译时间,以及二进制大小的增加和几乎无法测量的性能变化。

在过去的一段时间里,-O3实际上破坏了一些东西是很常见的,但是在过去的几年里,我没有一个-O3实际上优化了导致二进制文件中断的东西的情况。

最后,优化级别是您可以测试的内容。由于-O2是默认的,所以在本例中这是编译操作的最佳设置,这是一个非常安全的选择。如果您喜欢,可以尝试使用不同的设置来编译它,看看它是否会产生任何性能差异。

有趣的选项是-O3,甚至是-Os。我过去也有过这样的情况,这两种选择都比-O2提高了性能。

所以真正的答案是:试一试,看看会发生什么。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35504633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档