【发布时间】:2017-05-31 04:04:57
【问题描述】:
我在我的 MacBook Pro(四核)上注意到,当我运行 make 时,它所花费的时间与 make -j 相同,而且果然,Activity Monitor 显示所有四个内核的使用率都很高。为什么是这样? Apple有一些默认设置吗?我的意思是,将 -j 作为默认值是有意义的,但从我在网上看到的情况来看,没有参数的 make 应该只使用一个线程。
这不一定是问题,但我还是想了解原因。
【问题讨论】:
-
我们可能需要一个实际的工作示例来展示这种行为。 makefile inside 可能有一些诡计(它可以使用 -j 标志调用另一个 makefile),甚至与编译器有关。
-
您通常有一个默认的 make 文件配置,它指定默认的
-j $NUM_CORES值。我不知道它在 Mac 上的位置。通常,您不会设置大于1的默认值,因为大多数代码(甚至是最近的代码)不会并行构建,除非代码是专门编写的以利用并行编译的优势。您可能会使用一个内核进行实际编译,但您的其他内核中也会有大量工作要做。