[Android] systrace ツールを使ってパフォーマンス解析!

| トラックバック(0) |

Android SDK Tools, Revision 20 から、システムワイドなトレースツールである systrace が追加されました。

このツールを使うと、ユーザランドとカーネルの詳細なトレース結果を得ることができるので、パフォーマンス解析に役立ちます。

 

準備

  • PC に「Android SDK Tools, Revision 20」をインストールする。
  • PC に Python (実行環境)をインストールする。
  • Android 4.1 端末を PC と接続する。
  • 端末上の設定アプリで「開発者オプション」 > 「トレースを有効にする」 で任意の有効なトレースを選択する。

 

systrace の使い方

android-sdk/tools/systrace ディレクトリに移動し、systrace.py を実行する(※)。

※実行するには「python systrace.py」、または、実行権(x)を付加して「./systrace.py」

デフォルトでは 5 秒間トレースされますが、-t でトレース時間(単位は秒)を指定できます。

systrace1.png

 

実行結果

実行すると、trace.html ファイルが生成されるので、Chrome ブラウザ(※)で開きます。

※Firefox では正常に動作しませんでした

 

下図は、「API Demos」 > 「Graphics」 > 「OpenGL ES」 > 「Sprite Text」 を 1 秒間トレースした結果です。

trace.html ファイルは、HTML + Javascript で操作できるようになっていて、

色のついているエリアをダブルクリックすると、拡大できたり、範囲選択すると、下側に詳細な説明が表示されます。

VSYNC 美しいです!

VSYNC 美しいです!

trace.png

 

おまけ

systrace の出力結果には、trace-viewer という Chrome の Javascript ベースなトレースツールを使っているようです。

  • trace-viewer - Javascript-based trace visualization - Google Project Hosting

trace-viewer is the javascript frontend for Chrome's about:tracing UI, and can be used to visualize and analyze traces from various tracing libraries, including the linux kernel and Chrome's base/trace_event system.

また、systrace ツール自体は、python スクリプトで記述されていて、内部的には、adb shell から  atrace を実行しているようです。

 

あわせて読みたい

トラックバック(0)

トラックバックURL: http://mt.adakoda.com/mt-tb.cgi/584

2016年8月

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31