makeコマンドのコンパイルを高速にする
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」のオプションを使用すると構築することにしてみます
ディスカッション
コメント一覧
まだ、コメントがありません