如何加快Linux中的编译时间

Lor*_*tto 3 linux compiler-construction kernel

在 linux 下编译时,我使用标志 -j16,因为我有 16 个内核。我只是想知道使用诸如 -j32 之类的东西是否有意义。实际上,这是一个关于处理器时间调度的问题,以及是否可以通过这种方式对特定进程施加比其他任何方法更大的压力(假设我想用 -j16 并行编译每个进程,如果一个是 -j32 呢?) . 我认为这没有多大意义,但我不确定,因为不知道内核如何解决这些问题。

亲切的问候,

Max*_*kin 6

我使用基于 GNU make 的非递归构建系统,我想知道它的扩展性如何。

我在具有超线程的 6 核 Intel CPU 上运行基准测试。我使用-j1to测量了编译时间-j20。每个-j选项make运行 3 次,记录最短时间。-j9在最短的编译时间内使用结果,比-j6.

换句话说,超线程确实有一点帮助,具有超线程的英特尔处理器的最佳公式是number_of_cores * 1.5

在此处输入图片说明

图表数据在这里