make j 引數簡介

2021-10-23 21:00:51 字數 428 閱讀 2987

在linux編譯程式的時候,io往往不是瓶頸,那cpu就應該是乙個影響編譯速度的重要因素了。

用make -j帶乙個引數,可以把專案在進行並行編譯,比如在一台雙核的機器上,完全可以用make -j4,讓make最多允許4個編譯命令同時執行,這樣可以更有效的利用cpu資源。

還是用kernel來測試:

用make: 40分16秒

用make -j4:23分16秒

用make -j8:22分59秒

由此看來,在多核cpu上,適當的進行並行編譯還是可以明顯提高編譯速度的。但並行的任務不宜太多,一般是以cpu的核心數目的兩倍為宜。

不過這個方案不是完全沒有cost的,如果專案的makefile不規範,沒有正確的設定好依賴關係,並行編譯的結果就是編譯不能正常進行。如果依賴關係設定過於保守,則可能本身編譯的可並行度就下降了,也不能取得最佳的效果。

make j的最佳引數

c c 之類的編譯型語言採用make作為構建工具已歷史攸久。make j的最佳引數一直都眾說紛云。我目前見過以下幾種觀點 與物理cpu數目相同 與cpu所有物理核心數相同 與邏輯執行緒數相同 物理核心數目乘以2 物理核心數目乘以2加1 最近恰好想起這個問題,手頭又有合適的倉庫,就做了一下測試,結果志...

make j 8引數的作用

今天在編譯安裝乙個原始碼包的時候,不小心看到乙個make j 8的引數,make命令常見用來進行編譯的,編譯完成後執行make install進行安裝,可是 j 8 是用來做什麼的?用make j帶乙個引數,可以把專案在進行並行編譯,比如在一台雙核的機器上,完全可以用make j4,讓make最多允...

make j 加速編譯

make j 既然io不是瓶頸,那cpu就應該是乙個影響編譯速度的重要因素了。用make j帶乙個引數,可以把專案在進行並行編譯,比如在一台雙核的機器上,完全可以用make j4,讓make最多允許4個編譯命令同時執行,這樣可以更有效的利用cpu資源。還是用kernel來測試 用make 40分16...