Gcc 估计编译时间?

Gcc 估计编译时间?,gcc,compiler-construction,Gcc,Compiler Construction,是否有经验法则来确定程序的“合理”编译时间?显然,“合理”的含义有些主观,但在所有条件相同的情况下,例如,基于控制台的“Hello,World”编译不应该花费2小时。提供一个具体的例子-- 给定一个C代码库,X行代码,gcc优化级别Y。。。有没有合理的方法来预测编译的时间?对什么是“合理”的时间有什么看法 澄清 这里关注的参数仅与代码相关,而与CPU、内存和网络无关。对于在合理的开发机器(2+GHz,4+GiB RAM)上从合理的源代码构建的最合理的程序,则编译单个源文件的答案应为“几秒钟”。根

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

给定一个C代码库,X行代码,gcc优化级别Y。。。有没有合理的方法来预测编译的时间?对什么是“合理”的时间有什么看法

澄清


这里关注的参数仅与代码相关,而与CPU、内存和网络无关。

对于在合理的开发机器(2+GHz,4+GiB RAM)上从合理的源代码构建的最合理的程序,则编译单个源文件的答案应为“几秒钟”。根据我的经验,分钟范围内的任何东西通常都表明存在问题。然后,编译一个完整程序所需的时间取决于要编译的文件数量;编译20000个文件比编译20个文件需要更长的时间——实际上大约是1000倍。(合理的源文件通常有10k行以下的源文件,1k行以下的头文件-这两个准则都有很多例外,而且这两个数字都相当可观。)


但这要视情况而定。如果您的头文件在网络文件系统上,编译速度可能会比在本地文件系统上慢—除非您的本地驱动器速度慢、网络速度快且由SSD支持,并且。。。哦,天哪;有这么多的因素,几乎不可能给出一个好的答案

对于在合理的开发机器(2+GHz,4+GiB RAM)上从合理的源代码构建的最合理的程序,编译单个源文件的答案应该是“几秒钟”。根据我的经验,分钟范围内的任何东西通常都表明存在问题。然后,编译一个完整程序所需的时间取决于要编译的文件数量;编译20000个文件比编译20个文件需要更长的时间——实际上大约是1000倍。(合理的源文件通常有10k行以下的源文件,1k行以下的头文件-这两个准则都有很多例外,而且这两个数字都相当可观。)


但这要视情况而定。如果您的头文件在网络文件系统上,编译速度可能会比在本地文件系统上慢—除非您的本地驱动器速度慢、网络速度快且由SSD支持,并且。。。哦,天哪;有这么多的因素,几乎不可能给出一个好的答案

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

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

你真正能做的就是根据“上次”花了多长时间来估算,记住,如果你更改一个“流行”包含,可能会导致大量内容重新编译。你真正能做的就是根据“上次”花了多长时间来估算,记住如果你更改一个“流行”包含包含它可能会导致重新编译大量内容。而且,您可能已经添加了,编译时间通常是优化级别的递增函数。您可能已经添加了,编译时间通常是优化级别的递增函数。