代码之家  ›  专栏  ›  技术社区  ›  BCS

有没有不关心编译时间的优化器?

  •  2
  • BCS  · 技术社区  · 14 年前

    是否有使用中的编译器很少关注编译速度,而是寻求最大优化,即使在一个数量级的编译时间减慢?

    在我看来,编译需要几小时/几天,而不是几分钟/几秒钟,一旦接近最终版本,这将不是一个主要问题。(如果你有足够的测试,应该是安全的。)


    编辑:我感兴趣的是编译器,其中包括优化过程,在适度的程序上运行可能需要数小时甚至数天的时间(一般的优化需要10分钟或更少的时间,例如Linux内核、Apache或GCC本身)。

    2 回复  |  直到 14 年前
        1
  •  4
  •   Richard Pennington    14 年前

    事实上,是的。这并不是因为优化器速度慢,而是因为您要求优化器做的事情需要花费很长时间。例如,我使用llvm优化整个程序:已编译的源文件以及源文件使用的所有库。所有东西都作为中间代码链接在一起并优化。此优化明显慢于链接单独优化的对象文件。但我不在乎,有两个原因:1,优化是在整个程序上完成的,这值得等待(;-)2,计算机一直在变快。

        2
  •  2
  •   dmckee --- ex-moderator kitten    14 年前

    在某种程度上,它们是“慢”的,只是计算机如此之快,拥有如此之大的内存,以至于你没有注意到你以前那样…

    ::跑出去用g++做一个小实验:

    选择一个略微的代码,我写的工作,我得到(大约24K LOC在C++中的75个文件,使大量使用的 ROOT 库,但没有模板)

    • -O0 :8.88秒
    • -O4 :13.60秒
    • -Os :11.32秒

    嗯……不等于编译时间的很大一部分。也许它只是由文件访问时间控制的。也许我应该试试 mplayer 或者其他真正密集的。