前エントリーで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 件のコメント:
コメントを投稿