ラベル ビルド の投稿を表示しています。 すべての投稿を表示
ラベル ビルド の投稿を表示しています。 すべての投稿を表示

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

2013年6月16日日曜日

[Tizen]Tizenのネイティブアプリで平行ビルドしてみる

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

Tizenのネイティブアプリ開発はC++で実施しますが、TizenIDEでビルドする際に平行ビルドを有効にする方法のメモ。

平行ビルドによってビルド時間が短縮できるかはソースの構成などに依存するっぽいですが、C++のビルド時間短縮の常套手段っぽいのでとりあえずやっておきます。

手順

  • 対象のプロジェクトを選択して右クリック→Properties。

  • C/C++ Build→Behaviourタブをクリック。

  • Use parallel buildにチェックを入れる。

  • Use optimal jobs numberもしくはUse parallel jobsと数字を入れる。

例えばUse parallel jobsにチェクをして、数字に2と入れるとビルドの際にmake -j 2 となっており、平行ビルドが実行されている事がTizenIDEのConsoleで確認できます。

/Users/toshihirock/tizen-sdk/tools/smart-build-interface/bin/sbi action tizen-emulator-2.1.native_llvm31.i386.cpp.app -- make -options="-j2 all" -cliprojpath="" -clisdkpath="" -cliunitprojpath="" -cliappid="" 
Checking prerequisite...
Checking make... ok
Building file: ../inc/tizenx.h

平行ビルド数はPCのCPU数コア数より少し多い(?)ぐらいらしいです。。よく分からんけど。

私の環境だとUse optimal jobs numberにすると並列ビルドになりませんでした。サンプルでビルドしているのがHelloWorldのサンプルアプリだからなのかもしれませんが。