2013年6月17日月曜日

[Tizen]Tizenネイティブアプリのビルドでccacheを利用してみる

このエントリーをはてなブックマークに追加 はてなブックマーク - [Tizen]Tizenネイティブアプリのビルドでccacheを利用してみる

前エントリーでC++の平行ビルドのやり方について書きましたが、もう一つのコンパイラキャッシュを利用してビルド時間を短縮する方法を記載します。具体的にはccahceというツールを利用します。 なお、利用するのがキャッシュなので1回目のビルドは早くならないみたいです。ご了承下さい。

また作業実施にあたり、以下を参考にさせていただきました。

ビルドの待ち時間を減らす - ツール編

ccacheのインストール

ccacheをインストールします。 Macの場合にはhomebrewでインストールできます。Windowsの場合、ビルドするための環境(cygwinなど)が必要なようです。。。なお、こちらが公式サイトとなります。

$brew install ccache

Ubuntuなら以下でも大丈夫なようです。(確認はしてません)

$sudo apt-get install ccache

後で利用するのでパスも確認します。

$which ccache
/usr/local/bin/ccache

ccacheの利用

TizenのC++コンパイラはclang++というのを使っているみたいで、そのコマンドを利用する際にccacheも利用してね、という設定を行います。

  • 対象のプロジェクトで右クリック→Properties

  • C/C++ BuildでGenerate Makefilesにチェックが入っている事を確認

  • Settings→C++ Compiler

Commandの箇所を変更したいのですが、変更しても反映されないので(バグか?)ちょっと微妙な気もしますが、Command line patternの箇所を変更します。

  • 変更前→${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}
  • 変更後→/usr/local/bin/ccache clang++ ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}

また、上記だけでなくC++ Linkerも同じように変更します。

  • 変更前→${COMMAND} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} ${FLAGS}
  • 変更後→/usr/local/bin/ccache clang++ ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} ${FLAGS}

ちょっと、いやかなりださい気もしますが、commandの箇所が変更できないので仕方ない。。。

ビルドしてみる

対象のプロジェクトを右クリックしてビルドしてみます。 で、Consoleで上記設定が反映されているかを確認します。

/usr/local/bin/ccache clang++ -I"pch" -D_DEBUG ...(以下略)

上記の通り、コンパイルの箇所でccacheを利用したコマンドへの変更ができているようです。

また、以下のコマンドを実行するとどれぐらいキャッシュが有効だったかなどを確認できます。

$ ccache -s
cache directory                     /Users/toshihirock/.ccache
cache hit (direct)                    54
cache hit (preprocessed)               0
cache miss                            19
called for link                        9
files in cache                        34
cache size                          14.7 Mbytes
max cache size                       1.0 Gbytes

こんな感じで結果がでます。私はHelloWorldプログラムでの確認なのであんまり効果がないっぽいですが、大きなプロジェクトであれば、効果があるかと思っております。 実際に早くなっているかについては計測していないので分かりませんが、時間とやる気があればどこかで。

0 件のコメント:

コメントを投稿