Make

使用邏輯是什麼((((nproc) + 1) 在 make 命令中?

  • May 15, 2019

我試圖根據一些線上指南在 Ubuntu 中安裝 OpenCV。指南之一就是這個。它具有以下行:

make -j $(($(nproc) + 1))

nproc返回系統上可用的處理器/執行緒數。那麼,比現有的高一級有什麼好處呢?

大多數建構受 I/O 限制,而不是 CPU 限制,因此雖然nproc是一個不錯的起點(另請參閱如何確定傳遞給 make -j 選項的最大數量?),但大多數建構可以使用更多。如果您使用小型虛擬機進行建構,則尤其如此,您經常會在建構農場中找到它;在那裡你最終會得到-j 1or -j 2,並且使用-j 2or-j 3通常會導致更短的建構時間而沒有與公式相關的風險$(nproc) * 2(即使在 8 執行緒系統上也可能導致問題,更不用說你發現的更大的執行緒數了伺服器)。

引用自:https://unix.stackexchange.com/questions/519092