2011/06/17

Android ndk-buildの小ネタ

昨日、今日とAndroid+OpenCV2.2についていろいろとチャレンジしてましたが、
結局サンプルを動かす以外のことは出来ませんでした。

サンプル自体もかなり複雑なことをやっているようで、
私には何が何だか分からず。

というわけで、Android+OpenCV1.1のバージョンに戻すことにしました。

Android+OpenCV1.1の場合は、ここのサイトから、android_opencv.tar.gzをダウンロードし、
好きなプロジェクトフォルダを作成した後jniフォルダを作り、その中に展開したものを放り込みます。

あとはプロジェクトフォルダに移動して ndk-buildを実行するだけです。
早い・簡単・安定の3拍子。(関数はOpenCV2.2に比べれば減りますが)



昨日、今日と色々いじった結果、ndk-buildも中でmakeを呼んでいることが分かりました。
また、make用のオプションコマンドもある程度渡せることが分かりました。

んで、ndk-build時の小ネタは、 -j オプションをつけるということです。
-jオプションを指定することで、複数のジョブを同時に走らせることができるようになります。

-jオプションの数値をいじったときの、Android+OpenCV1.1のプロジェクトのビルドにかかる時間を測ってみたので書いておきます。

  • なし: 2分45秒
  • -j3:1分  
  • -j6:32秒 
  • -j8:35秒
  • -j20:38秒

私のPCに載っているCPUは6コアなので、 -j6オプションが一番効率が良さそうです。
ジョブを増やしすぎると、スレッドの切り替えによるオーバーヘッドかなにかで
処理時間が少しずつ長くなっているようです。

マルチコアCPUが載っているPCを使っている方は、ndk-buildの際は-jオプションをつけると
ビルド待ちの時間が減るのでは無いでしょうか。


ではまた。

0 件のコメント:

コメントを投稿