对于确定程序的“合理”编译时间,是否有任何经验法则?显然,“合理”意味着它有些主观,但在所有条件相同的情况下,基于控制台的“Hello,World”不应该花费2个小时来编译。提供一个具体的例子 -
给定一个C代码库,X#代码行,gcc优化级别Y,...有没有合理的方法来预测编译的时间量?关于什么是“合理的”时间的任何意见?
澄清
此处感兴趣的参数仅取决于代码,而非CPU,内存,网络相关。
答案 0 :(得分:4)
对于合理开发机器(2 + GHz,4 + GiB RAM)上合理来源构建的大多数合理程序,编译单个源文件的答案应该是“几秒钟”。根据我的经验,在分钟范围内的任何事情通常都表明存在问题。然后,编译完整程序所需的时间由要编译的文件数量来控制;编译20,000个文件比编译20个文件需要更长的时间 - 实际上大约是其一千倍。 (合理的来源通常有10k行以下的源文件和大约1k行以下的标题 - 这两个指南都有很多例外,这两个数字相当慷慨。)
但这一切都取决于。如果您的标题位于网络文件系统上,那么编译可能比它们在本地文件系统上的速度慢 - 除非您的本地驱动器速度慢,网络速度非常快且由SSD支持,并且......哦,天啊;有这么多因素,它几乎不可能给出一个好的答案!
答案 1 :(得分:0)
除了Jonathan的答案中提到的其他因素外,其他因素包括:编程语言,编码风格,编译器版本,pCode或二进制生成等。