0
0

More than 3 years have passed since last update.

正確な時間測定(Java)

Posted at

方法

以前まではcurrentTimeMills()メソッドを使って、時間計測を行っていた。
しかし、非常に短い時間で行われる処理の計測をする場合、ミリ秒単位でしか測れないのでは
正確な時間測定ができない。
そのため、ナノ秒単位で時間測定を行えるnanoTime()メソッドで時間測定を行う。

long start = System.nanoTime();
// 計測したい処理を記述
long end = System.nanoTime();

long timeSeconds = TimeUnit.NANOSECONDS.toSeconds((end - start));

currentTimeMillis()との比較

currentTimeMillis nanoTime
特徴 1970年1月1日午前0時0分0秒からの経過秒数をミリ秒で表したもの 時間測定だけに特化したメソッド。
メリット スレッドセーフである。(複数のスレッドから呼び出されても安全なメソッドであること。) ナノ秒単位で測れるので、currentTimeMillisよりも正確な時間測定が可能
デメリット 過去のある時点からの時間計測をする際に、うるう秒を含んでないため、測定結果がずれる可能性がある スレッドセーフではない。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0