加速gcc编译单个文件

时间:2015-11-30 21:46:29

标签: c++ linux gcc g++ redhat

运行RedHat7 w / g ++ version 4.8.3 w / j5 arg和o3优化。

我们目前有一个大约90,000行的文件(一大堆包装函数)。此文件的编译目前需要30到40分钟。

加快构建时间的最佳策略是什么?如果在多个文件之间拆分,会增加时间吗?是否有不同的编译器设置有助于编译此编译?

假设只是将文件拆分成多个文件会有所帮助,但在我完成工作之前......需要社区帮助。

2 个答案:

答案 0 :(得分:2)

  

90000

糟糕!

  

加快构建时间的最佳策略是什么?

将sucker分成多个文件。最好是语义排序。就个人而言,当源文件达到1k行时,我开始感到不舒服。 2k线肯定感觉不对。 3k是我个人的限制。

  

如果在多个文件之间拆分,会增加构建时间吗?

从技术上讲,启动编译器需要一些开销。但是,如果执行并行构建的足够的CPU核心/线程将很容易过度补偿并减少总构建时间:并行运行多个g ++进程,每个文件一个。如果您使用make,则可以使用-j选项轻松完成。

答案 1 :(得分:0)

“如果在多个文件之间拆分,会增加时间吗?”

第一次编译构建时间可能会增加,因为它必须完成所有文件的打开(并创建.o(bj))。但是,每次后续编译只需要编译已更改的代码,假设您没有更改其中一个包含(.h)文件。