如何加快 SMP 机器上的编译过程?

Posted

技术标签:

【中文标题】如何加快 SMP 机器上的编译过程?【英文标题】:How can you speed-up the compilation process on an SMP machine? 【发布时间】:2021-09-11 21:50:14 【问题描述】:

在 SMP 机器上加速编译过程背后的核心是什么?

【问题讨论】:

【参考方案1】:

通常,编译器和链接器之类的东西本身在使用多个 CPU 方面确实很糟糕。

但是;通常一个大项目会被分解成许多文件,这些文件分别编译然后链接。例如;使用 16 个 CPU,您可以毫不费力地并行编译 16 个单独的文件(然后链接所有目标文件)并更快地构建项目(即使编译器的每个实例本身只使用一个 CPU)。

额外的奖励;有时编译器会停止(例如,必须等待磁盘 IO 读取源文件或标头或其他东西)。使用更多进程(并行编译更多文件)意味着当一个进程/编译器停止时,其他进程可能能够继续运行,因此 CPU 空闲的可能性较小(什么都不做,也不能帮助项目更快地构建)。

在实践中;这通常最终受到控制建筑物的任何控制。例如,如果您使用make 来确定需要编译哪些部分,那么您可以使用make -j=16 告诉实用程序尝试并行运行 16 个作业。

【讨论】:

以上是关于如何加快 SMP 机器上的编译过程?的主要内容,如果未能解决你的问题,请参考以下文章

matlab中,如何加快数据运算速度?

如何加快 Rails 3+ 中的资产预编译?

如何在 python 中加快这个图像蒙版创建过程?

如何加快 Linux 内核编译速度?

linux程序编译过程

iOS 编译过程原理