Android TraceView 基本編
Android SDKには、プロファイリングツールである、TraceViewが付属しています。
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を入れた結果です。実際にはこのような使用方法をしません。かなり多くのログが出てきて醜いですし、実際に時間がかかっている部分は分かっているわけですのでそこに埋め込みます。
次回具体的な例を踏まえつつ記事にできたらいいなぁと思ってます。
コメント
コメントを投稿