Javaで経過/実行時間を計算する方法
Javaでは、次の方法を使用してJavaの経過時間を測定できます。
1. System.nanoTime()
これは、Javaで経過時間を測定するための推奨ソリューションです。
ExecutionTime1.java
package com.example.time; import java.util.concurrent.TimeUnit; public class ExecutionTime1 { public static void main(String[] args) throws InterruptedException { //start long lStartTime = System.nanoTime(); //task calculation(); //end long lEndTime = System.nanoTime(); //time elapsed long output = lEndTime - lStartTime; System.out.println("Elapsed time in milliseconds: " + output / 1000000); } private static void calculation() throws InterruptedException { //Sleep 2 seconds TimeUnit.SECONDS.sleep(2); } }
出力は異なる場合があります。
2004
2. System.currentTimeMillis()
ExecutionTime2.java
package com.example.time; import java.util.concurrent.TimeUnit; public class ExecutionTime2 { public static void main(String[] args) throws InterruptedException { long lStartTime = System.currentTimeMillis(); calculation(); long lEndTime = System.currentTimeMillis(); long output = lEndTime - lStartTime; System.out.println("Elapsed time in milliseconds: " + output); } private static void calculation() throws InterruptedException { //Sleep 2 seconds TimeUnit.SECONDS.sleep(2); } }
出力は異なる場合があります。
2006
3. Instant.now().toEpochMilli()
Java 8では、新しいjava.time.Instant
を試すことができます
ExecutionTime3.java
package com.example.time; import java.time.Instant; import java.util.concurrent.TimeUnit; public class ExecutionTime3 { public static void main(String[] args) throws InterruptedException { long lStartTime = Instant.now().toEpochMilli(); calculation(); long lEndTime = Instant.now().toEpochMilli(); long output = lEndTime - lStartTime; System.out.println("Elapsed time in milliseconds: " + output); } private static void calculation() throws InterruptedException { //Sleep 2 seconds TimeUnit.SECONDS.sleep(2); } }
出力は異なる場合があります。
2006
4. Date()。getTime()
ExecutionTime4.java
package com.example.time; import java.util.Date; import java.util.concurrent.TimeUnit; public class ExecutionTime4 { public static void main(String[] args) throws InterruptedException { long lStartTime = new Date().getTime(); calculation(); long lEndTime = new Date().getTime(); long output = lEndTime - lStartTime; System.out.println("Elapsed time in milliseconds: " + output); } private static void calculation() throws InterruptedException { //Sleep 2 seconds TimeUnit.SECONDS.sleep(2); } }
出力は異なる場合があります。
2007