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
・makeコマンドのコンパイルを「-j」オプションで高速化のもっと高い技術を身につけたいならこちら
■-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を実行したほうがコンパイルが早く終わります。
P.S
makeコマンドのコンパイルを「-j」オプションで高速化のもっと高い技術を身につけたいならこちら
<<関連記事>>
・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)
- 次のページへ:CentOS6.4をLinuxカーネル3.10.0にアップデートしてみました(カーネル再構築)
- 前のページへ:CentOS6.4がリリースされました。
- この記事の属するカテゴリ:Linux情報・技術・セキュリティへ戻る