考虑一个简单的情况:从源代码构建编译器会导致更好的优化吗?
我下载一个C++编译器的预编译的二进制文件(比如CLang
或GCC
或其他任何东西),我的通用操作系统(不是窗口)。我编译我的代码,其中包含一些计算昂贵的数学计算,其优化标记为-O3
,我的执行时间为T1
。
在另一次尝试中,这次不是使用预先构建的二进制文件,而是下载源代码并在我的通用计算机上自行构建编译器。我使用相同的优化标志编译相同的代码,实现时间T2
?
请问T2 < T1
或者他们会差不多呢?
换句话说,执行时间与编译器的编译方式无关吗?你的代码的
您是否怀疑预构建的二进制文件是以这种方式构建的,而忽略了它可能做的某些优化?如果是这样,为什么? – geoffspear
我只希望编译时间改变。 – Nobody
@正确!我正在使用GCC,其他实验室的同事都是CLANG的用户。然而,我们所做的本质上是相似的,并不完全相同。他们告诉他们在叮当时有更好的结果,但是,当我切换到叮当时,我意识到我的GCC还是更好。当问他们时,他们都表示他们已经编译了叮当,而我使用了预制。我只是想知道这是否相关。 – Pouya