Javaで経過時間を測定する方法は?
一般に、経過時間は、イベントの開始点から終了点までの時間です。以下は、Javaで経過時間を見つけるためのさまざまな方法です-
currentTimeMillis()メソッドの使用
currentTimeMillis()メソッドは、現在の時刻をミリ秒単位で返します。メソッドの経過時間を見つけるには、目的のメソッドの実行前後の時間値の差を取得できます。
例
public class Example { public void test(){ int num = 0; for(int i=0; i<=50; i++){ num =num+i; System.out.print(num+", "); } } public static void main(String args[]){ //Start time long begin = System.currentTimeMillis(); //Starting the watch new Example().test(); //End time long end = System.currentTimeMillis(); long time = end-begin; System.out.println(); System.out.println("Elapsed Time: "+time +" milli seconds"); } }
出力
0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176, 1225, 1275, Elapsed Time: 4 milli seconds
nanoTime()メソッドの使用
nanoTime()メソッドは、現在の時刻をナノ秒単位で返します。メソッドの経過時間を見つけるには、目的のメソッドの実行前後の時間値の差を取得できます。
例
public class Example { public void test(){ int num = 0; for(int i=0; i<=50; i++){ num =num+i; System.out.print(num+", "); } } public static void main(String args[]){ //Start time long begin = System.nanoTime(); //Starting the watch new Example().test(); //End time long end = System.nanoTime(); long time = end-begin; System.out.println(); System.out.println("Elapsed Time: "+time); } }
出力
0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176, 1225, 1275, Elapsed Time: 1530200
Instantクラスの使用
Instantクラスのnow()メソッドは現在の時刻を返し、Duration.between()メソッドは指定された2つの時刻値の差を返し、経過時間を取得して目的のメソッドの実行前後の時刻値を取得し、取得しますduration.between()メソッドを使用した期間。
例
import java.time.Duration; import java.time.Instant; public class Example { public void test(){ int num = 0; for(int i=0; i<=50; i++){ num =num+i; System.out.print(num+", "); } } public static void main(String args[]) { //Starting time Instant start = Instant.now(); new Example().test(); //End time Instant end = Instant.now(); long time = Duration.between(start, end).toMillis(); System.out.println(); System.out.println(time+" Milli seconds"); } }
出力
0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176, 1225, 1275, 3 Milli seconds
StopWatchクラスの使用
Apache Commonsライブラリは、Stopwatchと呼ばれるクラスを提供し、メソッドの実行にかかる時間を見つけるためのstart()stop()メソッドとgetTime()メソッドを提供します。
以下は、このパッケージのMavenファイルです-
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.7</version> </dependency>
例
import org.apache.commons.lang3.time.StopWatch; public class Example { public void test(){ int num = 0; for(int i=0; i<=50; i++){ num =num+i; System.out.print(num+", "); } } public static void main(String args[]) { //Instantiating the StopWatch class StopWatch obj = new StopWatch(); //Starting the watch obj.start(); new Example().test(); //Stopping the watch obj.stop(); System.out.println(); System.out.println("Elapsed Time: "+obj.getTime() +" milli seconds"); } }
出力
0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176, 1225, 1275, Elapsed Time: 1 milli seconds
-
Pythonで経過時間を測定する方法は?
プログラムの実行中に経過した時間を測定するには、time.clock()またはtime.time()関数を使用します。 Pythonのドキュメントには、この関数はベンチマークの目的で使用する必要があると記載されています。 例 import time t0= time.clock() print("Hello") t1 = time.clock() - t0 print("Time elapsed: ", t1) # CPU seconds elapsed (floating point) 出力 これにより、出力が得られます- Time elapsed
-
Pythonで高精度に時間を測定する方法は?
時間を高精度で測定するには、time.clock()またはtime.time()関数を使用します。 Pythonのドキュメントには、この関数はベンチマークの目的で使用する必要があると記載されています。 例 import time t0= time.clock() print("Hello") t1 = time.clock() - t0 print("Time elapsed: ", t1 - t0) # CPU seconds elapsed (floating point) 出力 これにより、出力が得られます- Time elapsed: &nbs