-j
引数を使用して、ビルドプロセスのスレッド数を設定できます。たとえば、4つのコアと4つの仮想があります。私が書くとき:make -j8
速度は4倍に増加します。
その値をデフォルトとして設定することは可能ですか? (たとえば、Linux Gentooの構成ファイルでは、このデフォルト値を設定できます)。
pS Arch Linuxを持っています
あなたの質問はスレッドではなく、makeによって実行されるプロセス(ジョブ)に関するものです。
これを設定する簡単な方法は、コンソールからmakeを使用するときに追加します。
alias make="/usr/bin/make -j 8"
.profile
ファイルに。
setenv MAKEFLAGS '-j 8'
を使用することもできますが、MAKEFLAGS
は、必要な数のプロセスを維持するために再帰的なmake
呼び出しと通信する必要があるため、一部のシナリオではこのパラメーターを無視できます。幸いにもこの方法 GNU Make の現在のバージョンで動作します。
setenv MAKEFLAGS '-j8'
お役に立てれば!
ここに私がそれをした方法があります:
CORES ?= $(Shell sysctl -n hw.ncpu || echo 1)
all:; @$(MAKE) _all -j$(CORES)
_all: install lint test
.PHONY: all _all
…
基本的に、デフォルトのターゲットall
を「プライベート」_all
に「エイリアス」しました。コアの数を計算するコマンドはOSX固有であり、AFAIKなので、可能であれば、クロスプラットフォームになるように改善することができます。また、?=
割り当てがあるため、必要に応じてenv変数でオーバーライドできます。
編集:
次のように、メイクファイル自体からMAKEFLAGS
に追加することもできます。
CPUS ?= $(Shell sysctl -n hw.ncpu || echo 1)
MAKEFLAGS += --jobs=$(CPUS)
…