how to: make -j x // where x is automatically determined
阅读此问题的答案后:使"make"默认为"make-j 8"
我想知道是否有办法使-j选项自动使用正确数量的编译线程?
所以我说make。而make命令本身根据硬件使用6、4或8个线程?
- 正确的编译线程数是什么意思?
- @MABA通常的建议是使用CPU核数x 2。所以对于双核CPU,应该是-j 4。但有些人建议编译线程与核心一样多。所以-j 2用于双核CPU。
- 还相关:stackoverflow.com/q/4778389/946850
如果您只使用make -j,那么make本身就不会查找内核的数量——相反,它与最大值是平行的。但是,您应该能够通过
1
| grep -c"^processor" /proc/cpuinfo |
或者(根据Azor Ahai的意见,如果您的系统上有可用的话)
因此:
请参见"如何从命令行获取Linux中CPU/内核的数量?"了解更多详细信息。另外,请参阅GNU make:作业的数量是否应该等于系统中CPU核心的数量?
- 我认为这不是用户想要的答案……但问题不是很清楚…
- @唐卡利斯托:不,这个问题对我来说是非常清楚的:如果有17个核,使用-j 17。我刚刚记起了-j错误的语义。
- 现在你的回答很有道理…请记住添加创建别名的部分;-)
- @唐卡利斯托:这已经在所提到的问题中得到了处理。
- 这和使用nproc有什么不同吗?
- @亚述:我不这么认为,谢谢你给我看《以东记》1(2)!