Help us understand the problem. What is going on with this article?

【TravisCI高速化】make時にオプションを付けたら超絶高速になった

More than 5 years have passed since last update.

はじめに

背景

  • TravisCIで以下のようなことを実行してみた
    • openCVのインストール
    • railsアプリの起動
    • 単体/受け入れテスト
  • ところが、openCVのインストールを当然ながら毎回するので、30分程度環境構築にかかってしまう
  • それでは使い物にならないため、改善できるところがないか考えてみた

改善

オプションの指定

  • make,make installに付けるオプションは-j2,-j4, -j8のようにすればジョブ数の指定ができる
  • 目安として$ make -j ${コア数 x 2}と上の記事で書いてあったのでコア数を確認

Travisのインスタンスのコア数

TravisCIに適したオプション

  • 他のサービスの.travis.ymlをいくつか覗いてみると、-j4や-j8と書かれていたものがちょこちょこ見られた
  • -j(ジョブ数制限なし=無制限)はシステムに影響を与える可能性があると書いてあったが、-j4, -j8, -jオプション付きでそれぞれ試してみた
    • 結果、-j4, -j8, -jに大差はなかった
  • 結論として、TravisCIではmakeのオプションは-j4,-j8を使うのがアンパイなのかもしれない
    • というかオプションなしでは遅すぎてCIどころじゃない

効果確認

  • openCVのインストールを含めた環境構築に30分程度かかっていたものが8〜10分でできるようになった
curl -sL https://github.com/Itseez/opencv/archive/2.4.5.zip > opencv.zip
unzip opencv.zip > $HOME/opencv.log
cd opencv-2.4.5
mkdir build
cd build/
cmake -D BUILD_EXAMPLES=ON -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON -D WITH_1394=OFF -D ENABLE_OPENMP=ON ../ 
make -j4  #<= オプション追加
sudo make -j4 install  #<= オプション追加
sudo ldconfig

~ただの宣伝~

  • 全国のSeleniumer必読
  • Seleniumerといっていますが、Selenium, SauceLabs, Travis, Jenkinsに関するノウハウ書いているのでよかったら参考にしてみてください
oh_rusty_nail
技術メモちょこちょこ書いてます。 参考にしていただけたら幸いです! 興味のある単語: [Selenium] [Jenkins] [自動化] [フロントエンド]
jrits
信頼と魅力のある先進のITをもとに、お客様のワークスタイル・イノベーションの実現を目指します。
http://www.jrits.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away