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