-jを作成するために渡されるオプションの最大数を決定する方法は?

-jを作成するために渡されるオプションの最大数を決定する方法は?

早くコンパイルしたいです。行って調べてください。オプションの後の数字が自動的に選択されるようにしたいです-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)できるだけ早く実行されます。

おすすめ記事