我试图根据一些在线指南在 Ubuntu 中安装 OpenCV。这就是其中一本指南。它有以下行:
make -j $(($(nproc) + 1))
Run Code Online (Sandbox Code Playgroud)
返回nproc
系统上可用的处理器/线程的数量。那么,比现有的更高的有什么优势呢?
大多数构建都受 I/O 限制,而不是 CPU 限制,因此虽然这nproc
是一个不错的起点(另请参阅如何确定要传递给 make -j 选项的最大数量?),但大多数构建可以使用更多数量。如果您\xe2\x80\x99 使用小型虚拟机进行构建(您\xe2\x80\x99 经常在构建场中找到这种虚拟机),则尤其如此;在那里你\xe2\x80\x99d最终得到-j 1
or -j 2
,并且使用-j 2
or-j 3
通常会导致更短的构建时间,而没有与诸如$(nproc) * 2
(即使在8线程系统上也可能导致问题,更不用说更大的线程)相关的公式的风险您在服务器上找到的计数)。