早くコンパイルしたいです。行って調べてください。オプションの後の数字が自動的に選択されるようにしたいです-j
。たとえば、シェルスクリプトでプログラム的にこの値を選択するにはどうすればよいですか?
の出力はnproc
コンパイルに使用できるスレッド数と同じですか?
make -j1
make -j16
ベストアンサー1
nproc
利用可能なCPUコア/スレッドの数を提供します。例えば8 双方向SMTをサポートするクアッドコアCPU。
make
このオプションを使用して並列に実行できるジョブの数は、-j
さまざまな要因によって異なります。
- 利用可能なメモリ量
make
各ジョブで使用されるメモリ量make
ジョブがI/OまたはCPUにバインドされている程度
make -j$(nproc)
良い出発点ですが、利用可能なすべてのメモリを消費し、スラッシングを開始しない限り、通常はより高い値を使用できます。
非常に高速なビルドに十分なメモリがある場合は、を使用することをお勧めします。tmpfs
これにより、ほとんどのタスクがCPUにバインドされ、make -j$(nproc)
できるだけ早く実行されます。