1. ホーム
  2. makefile

[解決済み] GNU make: ジョブの数はシステムの CPU コアの数と同じであるべきか?

2022-12-17 22:56:13

質問

GNU make のジョブ数はコア数と同じであるべきなのか、あるいは他のジョブが働いている間にキューに入れることができる追加のジョブを追加することによってビルド時間を最適化できるのかについて、いくつかの論争があるようです。

を使用する方が良いのでしょうか? -j4 それとも -j5 のどちらを使用しますか?

どちらかをサポートするベンチマークを見た (または行った) ことがありますか?

どのように解決するのですか?

私は、特定の環境とワークロードで自分自身でベンチマークを行うのが最善だと思います。あまりにも多くの変数 (ソース ファイルのサイズ/数、使用可能なメモリ、ディスク キャッシュ、ソース ディレクトリとキャンプ、システム ヘッダーが異なるディスクにあるかどうかなど) があるため、一律に答えられないように思われます。

私の個人的な経験 (2 コアの MacBook Pro) では、-j2 は -j1 よりかなり高速ですが、それ以上 (-j3, -j4 など) では測定可能な速度向上はありません。というわけで、私の環境では "jobs == number of cores" が良い答えのようです。(YMMV)。