Build Cache(ビルドの回避)

Build Cacheは、組み込みのキャッシュオプションを使用することで、コードベース全体ではなく、変更されたオブジェクトのみをリビルドすることができ、ビルド時間を短縮します。初回のビルドでキャッシュが生成されるので、2 回目以降のビルドでパフォーマンスの向上を実感できるようになります。そのためシングルユース VM での利用は意味がありません。

Build Cacheを使用するには、各ビルドを実行する際にコマンドラインスイッチを使用し、キャッシュに有用なものがあるかどうかをチェックし、実行中のビルドを今後使用するためにキャッシュで保存します。Build Cacheを使用するには、追加のストレージスペースが必要であり、これは Initiator マシンでキャッシュ用に割り当てられます。プロジェクト出力フォルダの最低 2 倍を目安にしてください。

キャッシュをイニシエーターマシンの全ユーザーで共有するか(「共有)、定義されたユーザーグループ(グループ)、または現在のユーザー(「ユーザー)で定義します。ユーザーのグループは、オペレーティングシステム上で定義されています。グループ オプションを使用する場合は、必ず対象グループを指定する必要があります(例:group='devteam1')。

いずれの場合も、キャッシュを使用できるイニシエータマシンは 1 台のみです。

Build Cacheの設定を行う

Initiator では次のコマンドを使用できます。

  • Build Cacheのサイズを設定します。デフォルトでは100GBですが、変更可能です。

    /opt/incredibuild/management/build_avoid_cache.sh <user|shared|group='groupname'> set_size <size in GB>

  • Build Cacheの位置とサイズに関する情報を返します。

    /opt/incredibuild/management/build_avoid_cache.sh <user|shared|group='groupname'> info

  • Build Cacheをクリアする:

    /opt/incredibuild/management/build_avoid_cache.sh <user|shared|group='groupname'> clear

Build Cacheを使ってビルドを実行する

ビルドを実行する際に、以下のコマンドラインスイッチを追加して、Build Cacheを使用するようにします。既定値では、--avoid のコマンドは「OFF」になっています。オンにした場合は現在のビルドだけに適用されます。

  • --avoid-user 現在のユーザーに対してBuild Cacheを有効化します。

  • --avoid-shared このイニシエータで使用する全ユーザー向けにBuild Cacheを有効化します。

  • --avoid-group="groupname" 指定したグループに属する全ユーザーに対してBuild Cacheを有効化します。

  • --avoid-basedir=<path> は、プロジェクトのベースディレクトリを定義します。この情報は別のパスから開始されたビルドのキャッシュを利用するのに使われます。

コマンドの例:

ib_console --avoid-shared --avoid-basedir=/home/myuser/opencv/sources make -j 40