运行RedHat7 w / g ++ version 4.8.3 w / j5 arg和o3优化。
我们目前有一个大约90,000行的文件(一大堆包装函数)。此文件的编译目前需要30到40分钟。
加快构建时间的最佳策略是什么?如果在多个文件之间拆分,会增加时间吗?是否有不同的编译器设置有助于编译此编译?
假设只是将文件拆分成多个文件会有所帮助,但在我完成工作之前......需要社区帮助。
答案 0 :(得分:2)
90000
糟糕!
加快构建时间的最佳策略是什么?
将sucker分成多个文件。最好是语义排序。就个人而言,当源文件达到1k行时,我开始感到不舒服。 2k线肯定感觉不对。 3k是我个人的限制。
如果在多个文件之间拆分,会增加构建时间吗?
从技术上讲,启动编译器需要一些开销。但是,如果执行并行构建的足够的CPU核心/线程将很容易过度补偿并减少总构建时间:并行运行多个g ++进程,每个文件一个。如果您使用make
,则可以使用-j
选项轻松完成。
答案 1 :(得分:0)
“如果在多个文件之间拆分,会增加时间吗?”
第一次编译构建时间可能会增加,因为它必须完成所有文件的打开(并创建.o(bj))。但是,每次后续编译只需要编译已更改的代码,假设您没有更改其中一个包含(.h)文件。