makeコマンドのコンパイルを「-j」オプションで高速化

HOMEリナックスマスター.JP 公式ブログLinux情報・技術・セキュリティ > makeコマンドのコンパイルを「-j」オプションで高速化

図解60p「Linuxサーバー構築入門マニュアル」無料
登録10秒/自動返信でDL/合わなければ解除3秒

MySQLなどをmakeでコンパイルしようとした場合、処理に時間が掛かります。
そのような場合、マルチプロセッサ環境であれば、makeコマンドに「-j」オプションを
付けて実行すると、コンパイルが並列処理され、時間短縮することができます。

書式
make -j ジョブ数

■実行環境
・VMware Player5
・仮想マシンのスペック
 ・CentOS6.4
 ・メモリ  :1GB
 ・CPUコア数:4

コンパイルソフト:Apache 2.2.24

処理時間を測定するために、timeコマンドを付けてmakeを実行しました。

■-jオプション無しで実行
[root@Tiger httpd-2.2.24]# time make
real 5m2.725s
user 0m49.494s
sys 5m14.875s

ここまで読んだあなたへ、無料プレゼント
図解60p「Linuxサーバー構築入門マニュアル」で、
最初の環境構築をサクッと終わらせませんか?
無料で受け取る 登録10秒/自動返信でDL/解除も3秒

■-jオプション付き ジョブ数2
[root@Tiger httpd-2.2.24]# time make -j2
real 4m37.823s
user 1m21.068s
sys 8m40.777s

■-jオプション付き ジョブ数3
[root@Tiger httpd-2.2.24]# time make -j3
real 4m28.039s
user 2m9.022s
sys 10m57.001s

■-jオプション付き ジョブ数4
[root@Tiger httpd-2.2.24]# time make -j4
real 4m34.442s
user 2m41.338s
sys 12m47.424s

■-jオプション付き ジョブ数5
[root@Tiger httpd-2.2.24]# time make -j5
real 4m28.378s
user 2m35.472s
sys 12m35.351s

■-jオプション付き ジョブ数6
[root@Tiger httpd-2.2.24]# time make -j6
real 4m32.672s
user 2m35.304s
sys 12m52.230s

■-jオプション付き ジョブ数7
[root@Tiger httpd-2.2.24]# time make -j7
real 4m29.440s
user 2m30.057s
sys 12m41.908s

■-jオプション付き ジョブ数8
[root@Tiger httpd-2.2.24]# time make -j8
real 4m32.804s
user 2m31.532s
sys 12m57.533s

ちなみに、mysql 5.6.10でテストを行った結果は以下のとおりです。
■-jオプション無しで実行
[root@Tiger mysql-5.6.10]# time make
real 25m20.778s
user 18m35.102s
sys 5m7.402s

■-jオプション付き ジョブ数8
[root@Tiger mysql-5.6.10]# time make -j8
real 16m13.095s
user 33m56.244s
sys 14m29.432s

今回の結果から、ある程度CPUに負荷が掛かっても良い環境であれば、
-jオプションを付けてmakeを実行したほうがコンパイルが早く終わります。



無料プレゼント
図解60p「Linuxサーバー構築入門マニュアル」
独学で詰まる前に、“型(手順書)”で最初の環境構築をサクッと終わらせましょう。
登録10秒/自動返信でDL/合わなければ解除3秒
無料で受け取る ※メールアドレスだけでもOK(必須項目は最小限)

宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。


図解60pのLinux無料マニュアル
登録10秒/自動返信でDL
無料で受け取る