Androidで処理時間の計測を簡単に行う方法が無いかと探していたら、TimingLoggerというクラスを使えば簡単に行えることが分かったので共有します。
ただし、注意が必要で、最初に以下シェルコマンドを打ってやらないと、ログは出力されません。
$ adb shell
# setprop log.tag.TAG_TEST VERBOSE
実装方法
// 測定開始
TimingLogger logger = new TimingLogger("TAG_TEST", "testTimingLogger");
// 何らかの処理1
doSomething1();
// 処理1計測終了
logger.addSplit("処理1");
// 何らかの処理2
doSomething2();
// 処理2計測終了
logger.addSplit("処理2");
// 測定終了+ログ出力
logger.dumpToLog();
といった感じみたいです。
実際Logcatに出力された内容は以下の通りです。
12-24 10:43:58.195: D/TAG_TEST(2164): testTimingLogger: begin
12-24 10:43:58.195: D/TAG_TEST(2164): testTimingLogger: 21456 ms, 処理1
12-24 10:43:58.195: D/TAG_TEST(2164): testTimingLogger: 66216 ms, 処理2
12-24 10:43:58.195: D/TAG_TEST(2164): testTimingLogger: end, 87672 ms
Logcatのコマンド打つところに”tag:TAG_TEST”とたたくと、それにちなんだログだけ出力されるようフィルタリングされるようになります。
ちなみに、複数の種類のログも出力できるので、回数分Shellコマンドたたいてあげるといいみたいです。