【发布时间】:2014-02-24 20:59:36
【问题描述】:
考虑这个简单的案例场景:
我为我的通用操作系统(不是 Windows)下载了 C++ 编译器的预构建二进制文件(比如 CLang 或 GCC 或其他任何东西)。我编译了我的代码,其中包含一些计算量很大的数学计算,带有优化标志-O3,我的执行时间为T1。
在一次不同的尝试中,这次我下载源代码并在我的通用机器上自己构建编译器,而不是使用预构建的二进制文件。我用相同的优化标志编译相同的代码,达到执行时间T2?
T2 < T1 会不会大体相同?
换句话说,执行时间是否独立于编译器的构建方式?
【问题讨论】:
-
您是否怀疑预构建二进制文件的构建方式遗漏了它可以做的一些优化?如果有,为什么?
-
我只希望编译时间会发生变化。
-
@Wooble,没错!我曾经/正在使用 GCC,而我在另一个实验室的同事是 CLang 用户。我们所做的在本质上是相似的,然而,并不完全相同。他们告诉他们使用 clang 取得了更好的结果,但是,当我切换到 clang 时,我意识到我的 GCC 仍然更好。问他们时,他们都说他们编译了clang,而我使用的是预建的。我只是想知道这是否相关。
-
很高兴知道投反对票的原因...
标签: c++ optimization compiler-construction