Android TraceView 基本編

Android SDKには、プロファイリングツールである、TraceViewが付属しています。

traceview tao.trace

TraceViewについてのドキュメントは以下にあります。Traceview: A Graphical Log Viewer

連載記事になれば良いなぁと思い、TraceViewのファーストステップです。

1. 計測したい位置にコードを追加する

以下のように、計測開始位置にstart計測終了位置にstopメソッドを追加します。

最初に感じをつかむために使用するのであれば、OnCreate()と、onDestoroy()に入れてしまえば良いです。

// start tracing to "/sdcard/tao.trace"Debug.startMethodTracing("tao");// ...// stop tracingDebug.stopMethodTracing();

2.実行する

先ほどstart,stopした位置のソースが動作するようにエミュレータで実行させます。

3.ログファイルの吸い出し

先の例では、「/sdcard/tao.trace」というログファイルが作製されているので、ログファイルをPCに持ってきます。

EclipseのDDMSのGUIを使ってもいいですし、adb pullコマンドを使っても良いです。

adb pull /sdcard/tao.trace tao.trace

4.TraceViewの起動

ファイルはフルパスで指定する必要があります。カレントディレクトリにおいて、traceview tao.traceとするとファイルが見つかりませんと言われます。

traceview c:\android\tao.trace

traceviewを実行すると、この記事の最初の画面のようなウインドウが表示されます。
後はこのログを見ていきどこにボトルネックがあるのかを判断していきます。

TraceViewの説明

上段はTimeline Panel下段は、Profile Panelと呼びます。操作方法は触っているとわかると思いますが、Profile Panelの一番したに、Findが用意されているのでメソッド名による検索も可能です。

  • Incl %

    Inclusive時間のトータルタイムからのパーセンテージ

  • Inclusive

    そのメソッドと、そのメソッドから呼ばれたメソッドの実行時間

  • Excl %

    Exclusive時間のトータルタイムからのパーセンテージ

  • Exclusive

    そのメソッドの実行時間

  • Cals+RecurCalls/Total

    このメソッドが何回呼ばれたか/再帰で何回呼ばれたか

  • Time/Call

    メソッドの実行時間(ミリセック)

C:\android>traceviewUsage: java com.android.traceview.MainWindow [-r] trace-r   regression only

データ解析例

この記事のトップの画像で表示しているのは、OnCreateと、OnDestroyにstartMethodTracingと、stopMethodTracingを入れた結果です。実際にはこのような使用方法をしません。かなり多くのログが出てきて醜いですし、実際に時間がかかっている部分は分かっているわけですのでそこに埋め込みます。

次回具体的な例を踏まえつつ記事にできたらいいなぁと思ってます。

ブログ内の関連する記事


コメント

このブログの人気の投稿

ドローンプログラミング体験教室を伊豆大島の小学校でしてきました

iBatisで動的SQL

情報処理安全確保支援士登録証のカード型が届きました。