Android メソッドの処理にかかった時間を計測する

Android

Android メソッドの処理にかかった時間を計測する

アプリの動きを少しでも早くしたい…
すべてのアプリ開発者の願いだと思います。

もちろん、画面を見て
「なんか遅いなー」
とか思う時もありますが、ちゃんと何秒なのか、何ミリ秒なのか、原因はどこにあるのか?わからないとよい改善もできませんよね!

で、

 Debug.startMethodTracing();

とやればトレースログというものを見ることができ、それらがわかるのですが、いくつか私がはまってしまったことがあるので、それを書いておきます。

計測したいメソッドの始まりに

 Debug.startMethodTracing();

と書いて、計測したい終わりに

 Debug.stopMethodTracing();

と書きます。

 //例
 Debug.startMethodTracing("smart");
 super.onResume();
 Debug.stopMethodTracing();
 

上記の例だと、smart.traceというファイルがスマホ上にできます。

で、できる場所なんですが、いろんな解説のサイトやオフィシャルサイトだと

 /sdcard/smart.trace

とできると書いてあります。

SDカード?と思って、microSDカードの中にできてるんだと思ってしまいました。
あれ?ない?なんで??
ずっと試行錯誤しちゃいましたが、これ、microSDカードのなかではなく、デフォルトはスマホ内部のストレージなんですね。

手元のGalaxyS3aだと

 /storage/sdcard0

というディレクトリに入ってました。
これはスマホにより違うので、ファイルマネージャーなどのアプリで各自確認してみたほうがよいでしょう。

で、無事ファイルができていたことを確認できたので、まずはEclipseの入っているWindowsにsmart.traceを移します。
スマホからPCにコピーをするには、adbで下記のように実行します。

例 スマホからC:\Usersにコピー

2735 KB/…sと言うのは、実行した後に表示されます。

で、このC:\Usersにあるこのトレースログファイルをどうやって見るか、というと下記のようにやります。

すると、下記のように反応して、ほうっておくとDDMSのwindowが立ち上がります。

立ちあがったトレースビューの画面です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です