估计编译时间?

时间:2013-07-02 14:58:56

标签: gcc compiler-construction

对于确定程序的“合理”编译时间,是否有任何经验法则?显然,“合理”意味着它有些主观,但在所有条件相同的情况下,基于控制台的“Hello,World”不应该花费2个小时来编译。提供一个具体的例子 -

给定一个C代码库,X#代码行,gcc优化级别Y,...有没有合理的方法来预测编译的时间量?关于什么是“合理的”时间的任何意见?

澄清

此处感兴趣的参数仅取决于代码,而非CPU,内存,网络相关。

2 个答案:

答案 0 :(得分:4)

对于合理开发机器(2 + GHz,4 + GiB RAM)上合理来源构建的大多数合理程序,编译单个源文件的答案应该是“几秒钟”。根据我的经验,在分钟范围内的任何事情通常都表明存在问题。然后,编译完整程序所需的时间由要编译的文件数量来控制;编译20,000个文件比编译20个文件需要更长的时间 - 实际上大约是其一千倍。 (合理的来源通常有10k行以下的源文件和大约1k行以下的标题 - 这两个指南都有很多例外,这两个数字相当慷慨。)

但这一切都取决于。如果您的标题位于网络文件系统上,那么编译可能比它们在本地文件系统上的速度慢 - 除非您的本地驱动器速度慢,网络速度非常快且由SSD支持,并且......哦,天啊;有这么多因素,它几乎不可能给出一个好的答案!

答案 1 :(得分:0)

除了Jonathan的答案中提到的其他因素外,其他因素包括:编程语言,编码风格,编译器版本,pCode或二进制生成等。