Androidでプロファイリング(traceview)

By Iguchi
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

プログラマの皆さん、今回はAndroidのプロファイラの使い方をご紹介したいと思います。

デバッガツール(プロファイラなどを含む)を使うことは非常に大事です。ここをうまく使いこなせるかどうかがプログラムの品質、開発スピードに大きく影響すると思っています。
めんどくさいと思わず積極的に使いましょう。

ということでAndroidアプリのプロファイラであるtraceviewというものを使ってみたいと思います。

これは、android-sdkをダウンロードしたディレクトリ以下にあります。
(Android Home)/tools/traceview

では使ってみましょう。

1.プロファイルをとりたい箇所に以下のコードを埋め込む。

使い方の例として、startMethodTracing()をonCreate()でコールして、stopMethodTracing
()をonDestroy()でコールするとそのActivityのプロファイルが取得できます。
startMethodTracing()の引数でファイル名を指定できます。このコードの場合、/sdcard/patom.traceにプロファイルファイルが出力されます。

2.実行しプロファイルをとる。

普通に実行するだけです。

3.本体から取得したプロファイルをとってくる

以下のコマンドを実行し、実機から取得します。
$ adb pull /sdcard/patom.trace /tmp

4.traceviewを起動する

$ traceview /tmp/patom

traceviewを起動すると次のような画面が立ち上がります。

traceview

Timeline PanelとProfile Panelに分かれています。
Timelne Panelが横軸に時間を取って、時系列に処理にかかっている時間を表示しています。
Profile Panelで実際にどの処理にどのくらい時間がかかっているのかが割合と時間で確認できます。

「Excl %」と表記されているのが関数ごとにかかっている時間を表示しています。
ここを見ればどこに時間がかかっているのかがわかりやすいと思います。今回の場合は
android/graphics/BitmapFactory.nativeDecodeStreamに全体の43.1%、14785.880 msecかかっていることがわかります。

このアプリのチューニングポイントはここにありそうです!。

Androidのサイトにも載っています。
http://developer.android.com/intl/ja/guide/developing/tools/traceview.html

以上です。みなさん使ってみてください。

関連する投稿