ので、多くのCPUコア(12と言う)とワークステーション上のソフトウェア・パッケージをコンパイルするには、コンフィギュレーション・ステージは、多くの場合、実際のコンパイル段階よりもはるかに長い時間がかかる./configure
テストを一つずつんが、make -j
実行するgcc
だけでなく、他のコマンドに並列に。
残りの11個のコアをほとんどの時間アイドル状態にして、遅いもの./configure
が完了するのを待つのは、リソースの大きな浪費だと感じています。なぜテストを連続して行う必要があるのですか?各テストは互いに依存していますか?私は間違っているかもしれませんが、それらの大半は独立しているようです。
さらに重要なことは、スピードアップする方法はあります./configure
か?
編集:状況を説明するために、GNU Coreutilsの例を示します
cd /dev/shm
rm -rf coreutils-8.9
tar -xzf coreutils-8.9.tar.gz
cd coreutils-8.9
time ./configure
time make -j24
結果:
# For `time ./configure`
real 4m39.662s
user 0m26.670s
sys 4m30.495s
# For `time make -j24`
real 0m42.085s
user 2m35.113s
sys 6m15.050s
coreutils-8.9、./configure
6回より長くかかりますmake
。が./configure
使用少ないCPU時間(「ユーザー」&「SYS」の回で見て)それが並列化されていないので、それははるかに長い(「リアル」)かかります。テストを数回繰り返しましたが(関連ファイルはおそらくメモリキャッシュに残っています)、時間は10%以内です。