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

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

無料Linux入門マニュアル無料ダウンロード

今だけ2,200円のLinux入門PDFマニュアルが【数量限定】で無料ダウンロードできます。
Linux入門マニュアル無料ダウンロードはこちらをクリック

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


■-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を実行したほうがコンパイルが早く終わります。


無料Linux入門マニュアル無料ダウンロード

今だけ2,200円のLinux入門PDFマニュアルが【数量限定】で無料ダウンロードできます。
Linux入門マニュアル無料ダウンロードはこちらをクリック


<<関連記事>>
・RHEL7/CentOS7が重要カーネルセキュリティアップデートをリリース【CVE-2019-14821/CVE-2019-15239】
・PostgreSQL 12が公開と2019年10月データベース人気ランキング
・CentOS8とCentOS7の違い、変更点のまとめ
・Apacheに脆弱性(CVE-2017-9798)、メモリから情報漏えいの恐れ
・Apache Tomcat の複数の脆弱性に対するアップデート(CVE-2017-7674、CVE-2017-7675)

Linux入門マニュアル無料ダウンロード