在Gentoo Linux中,可以设置MAKEOPTS变量/etc/portage/make.conf以告知make构建软件包时应并行运行多少个作业。由于我有一个双核CPU,因此我天真地选择使用该-j2选项:每个核一个作业,因此两者都有事情要做。“问题”有很多参考,它们告诉拥有双核CPU的用户设置该-j3选项。他们之中有一些是:
例如,Gentoo手册中说:
一个不错的选择是系统中的CPU(或CPU内核)数量加一个,但是此指南并不总是很完美。
但是“ CPU + 1”规则的基本原理是什么?为什么要增加工作?
make.conf(5)手册页甚至说:
建议的设置在CPU + 1和2 * CPU + 1之间。
我还阅读了make信息页的5.4节(并行执行)和make该-j选项的手册页说明,但似乎那里没有答案。