makeコマンドのコンパイルを高速にする

2021-06-25

makeコマンドで「-j」オプションを利用して高速に処理する

makeコマンドで「-j」のオプションを使用すると、同時に実行できるジョブ(コマンド)の数を指定できるようになります。このオプションを使用するとmakeコマンドを並列で複数、処理されるのでオプションなしより高速に処理されます

仮想マシンで実際にmakeして試してみます

Hyper-Vの仮想マシンでMySQLをMakeしてオプション無しと有りでの速度差を比較してみます。実際に作業する仮想マシンのスペックは下記のスペックです

  • CPU:AMD A8-5500 (3.2GHz,) x 2
  • メモリ:4G
  •  コンパイル対象:mysql-5.1.x

まずは、test makeで速度を測定してみます

$ test make
real    11m9.825s
user    9m50.168s
sys     1m5.038s

-j2でジョブ数を2個にしてみます。速度は早くなって。半分以下です

$ time make -j2
real    6m10.167s
user    10m17.064s
sys     1m10.586s

-j2でジョブ数を4個にしてみます。速度は少し遅くなってしまいました。仮想マシンのコア数を2個なので、-j4だと実際のコア数を超えているので、早くなっているが頭打ちみたいな感じです。

$ time make -j4
real    6m55.613s
user    11m45.753s
sys     1m12.657s

test makeではなく、実際にmakeを走らせたら以下のような速度になりました。
やっぱりオプションを付けると半分以下の速度になりますね。但しオプション付きでMakeを走らせたらロードアベレージも高くなったいたので、稼働中のサーバーなら不安があるけど構築中なら問題ないと思われます。

コマンド make make -2 make -4
時間 約10分 約6分 約5分30秒

 

次回から、サーバー構築は、「-j」のオプションを使用すると構築することにしてみます

 

 

 

スポンサーリンク

0
0

LinuxCentOS 5,CentOS 6,CentOS 7

Posted by admin