【Java】nanoTime/currentTimeMillisを使って時間をナノ秒単位とミリ秒単位で計測する!
処理時間をナノ秒、ミリ秒で計測するにはSystem.nanoTimeメソッドとSystem.currentTimeMillisメソッドを使用します。
System.nanoTimeメソッドはナノ秒単位で処理時間を計測することができ、System.currentTimeMillisメソッドはミリ秒単位で処理時間を計測することができます。
今回はnanoTimeとcurrentTimeMillisメソッドを使って、
・ ナノ秒の場合
・ ミリ秒の場合
で時間を計測します。
目次
nanoTimeメソッドとは
System.nanoTimeメソッドはナノ秒単位で処理時間を計測することができます。
nanoTimeメソッドの戻り値はlong型でプログラムを実行しているシステムの時間返すようになります。
nanoTimeメソッドの書き方
nanoTimeメソッドの構文は下記となります。
1 |
System.nanoTime |
currentTimeMillis()メソッドとは
System.currentTimeMillisメソッドはミリ秒単位で処理時間を計測することができます。
currentTimeMillisメソッドの戻り値はlong型でエポック秒から経過した時間を返すようになります。
currentTimeMillisメソッドの書き方
currentTimeMillisメソッドの構文は下記となります。
1 |
System.currentTimeMillis() |
時間を計測するサンプルコード
時間をで計測するサンプルコードを紹介します。
時間を計測するには、処理を開始した時刻と終了した時刻を記録し、その差を求めることで計測することができます。
ナノ秒で計測する場合
nanoTimeメソッドを使用して時間をナノ秒で計測します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
// 正確に時間を計測する import java.util.*; public class Main { public static void main(String[] args) throws Exception { long startTime = System.nanoTime(); //適当な処理を実行する for (int i = 0; i < 10000; i++) { Math.sin(Math.random()); } long endTime = System.nanoTime(); // 処理にかかった時間を表示 System.out.println((endTime - startTime) + "ナノ秒"); } } |
出力結果
1847283ナノ秒
ナノ秒単位で時間を計測することができました。
ミリ秒で計測する場合
currentTimeMillisメソッドを使用して時間をミリ秒で計測します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
// 正確に時間を計測する import java.util.*; public class Main { public static void main(String[] args) throws Exception { long startTime = System.currentTimeMillis(); //適当な処理を実行する for (int i = 0; i < 10000; i++) { Math.sin(Math.random()); } long endTime = System.currentTimeMillis(); // 処理にかかった時間を表示 System.out.println((endTime - startTime) + "ミリ秒"); } } |
出力結果
2ミリ秒
ミリ秒単位で時間を計測することができました。
今回のポイント
nanoTimeでナノ秒単位で計測
ナノ秒単位で時間を計測するにはSystem.nanoTimeメソッドを使用する。
• ナノ秒単位で時間を計測するにはSystem.nanoTimeメソッドを使用する
• nanoTimeメソッドを2回呼び出し、2回目から1回目の差分を取ることで、経過時間をナノ秒単位で取得することができる
• nanoTimeメソッドの戻り値は、経過時間の差分を取るためだけに使用される
currentTimeMillisでミリ秒単位で計測
ミリ秒単位で時間を計測するにはSystem.currentTimeMillisメソッドを使用する
• ミリ秒単位で時間を計測するにはSystem.currentTimeMillisメソッドを使用する
• currentTimeMillisメソッドは1970年1月1日午前0時ちょうどからメソッドを呼び出した時間までの経過時間をミリ秒で表した値を戻す
• currentTimeMillisメソッドを2回呼び出し、2回目から1回目の差分を取ることで、経過時間をミリ秒単位で取得することができる
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。