2012/09/02

Android:TimingLoggerで処理間隔をログで出力する

TimingLoggerというクラスがあります。

このクラスを使用すると、処理間隔をわかりやすくログ出力できます。
実際にコードと出力イメージをみたほうが理解できます。

サンプルコード
TimingLogger timings = new TimingLogger("tag", "method");
// work a
timings.addSplit("work a");
// work b
timings.addSplit("work b");
// work c
timings.addSplit("work c");
timings.dumpToLog();
ログ
D/tag     ( 3459): method: begin
D/tag     ( 3315): method:      5 ms, work a
D/tag     ( 3315): method:      3 ms, work b
D/tag     ( 3315): method:      12 ms, work c
D/tag     ( 3315): method: end, 20 ms
TimingLoggerはスレッドセーフに設計されていません。
TimingLoggerで使える主なメソッドは下記。

TimingLogger(String tag, String label)
コンストラクタ。
dumpToLogでの出力結果に、ログタグtagと計測対象のメソッド名labelを設定します。

addSplit(String splitLabel)
計測に"マーカー"となるラベルを設定します。
dumpToLogでの出力結果に、前回マーカーポイントからの経過時間を表示させます。

dumpToLog()
計測した結果をログ出力します。

reset()
計測情報を全てリセットします。
addSplitで設定したマーカー情報もリセットされます。
コンストラクタで指定したtagとlabel情報はそのまま残ります。

reset(String tag, String label)
計測情報に加えて、コンストラクタで設定したログタグとメソッド名情報をtag,labelで上書きます。

参考:http://developer.android.com/reference/android/util/TimingLogger.html

以上です。