如何加快 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 机器上的编译过程?的主要内容,如果未能解决你的问题,请参考以下文章