Androidで処理時間を計測するならSystem#currentTimeMillisよりもSystemClock#uptimeMillis

タイトルまんまの内容。

メソッドの処理時間を計測したかった

Androidで処理時間を計測しようとSystem.currentTimeMillis()を使ってたら、SystemClock.uptimeMillis()のがいいよとアドバイスをもらった。

なぜか?

System.currentTimeMillis()の場合、端末時間をユーザーが変更できたりOSの時刻補正によって現在時間がかわる恐れがあるため

SystemClock.uptimeMillis()は端末ブートしてからの時間を記録してるので、時間に変更が入る心配がない

ただし、SystemClock.uptimeMillis()はディープスリープに入ると止まるため、長い計測を行う場合には注意が必要だ。

参考リンク

Yukiの枝折: 経過時間を求める方法 http://yuki312.blogspot.jp/2011/11/blog-post_30.html