【问题标题】:Why would you NOT want the compiler to optimize your code?为什么你不希望编译器优化你的代码?
【发布时间】:2013-01-26 06:15:53
【问题描述】:

当我意识到 GCC 有这个选项时,我问了谷歌,很多人想知道如何告诉编译器不要优化代码。这似乎适得其反,这对程序员有什么帮助?也许调试?在首选这样做的情况下,它会有什么帮助?

【问题讨论】:

    标签: compiler-optimization


    【解决方案1】:

    你说过 - 调试。优化器可以重组代码,使函数不再存在并且语句混合在一起。通常需要关闭优化以允许调试器将机器/字节码地址映射回源位置。

    正如 Tikhon 所提到的,如果优化器有错误,它也会很有用。

    【讨论】:

      【解决方案2】:

      主要原因是编译时间:开启优化可以显着增加编译时间,但不一定会带来太多好处。

      此外,某些优化可能会影响程序的准确性和正确性。但是,这些优化通常需要显式打开,而不是使用 -O2 之类的标志。

      一些优化——比如内联——可以增加可执行文件的大小。在某些情况下,这是一个重要的考虑因素。

      优化也会对您的代码产生负面影响。例如,速度可能会提高,但会以使用更多内存为代价。这并不总是可取的。

      【讨论】:

      • 另外,它应该针对大小或速度优化什么?在 PC 上,答案几乎总是速度,但在 ROM/闪存有限的嵌入式系统中存在大小问题。
      • @GabeSechan:我实际上只是在编辑它,正如你评论的那样。这是需要考虑的重要一点。
      • 谢谢,这有助于了解当我超越编写 100 行程序时,编码会是什么样子。
      猜你喜欢
      • 2015-09-15
      • 1970-01-01
      • 2013-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-01
      • 1970-01-01
      • 2015-05-13
      相关资源
      最近更新 更多