現在時刻を取得するには System.nanoTime を使用してください。
long startTime = System.nanoTime();
.....your program....
long endTime = System.nanoTime();
long totalTime = endTime - startTime;
System.out.println(totalTime);
上記のコードは、プログラムの実行時間をナノ秒単位で表示します。
あなたのメインメソッドの始めに、このコード行を追加してください:
final long startTime = System.nanoTime();
そして、メインメソッドの最後の行に次のものを追加できます。
final long duration = System.nanoTime() - startTime;
duration
には、プログラムが実行された時間がナノ秒単位で含まれています。たとえば、この値を次のように印刷することができます。
System.out.println(duration);
秒単位で継続時間を表示したい場合は、値を1'000'000'000で割る必要があります。あるいはDate
オブジェクトが欲しい場合は:Date myTime = new Date(duration / 1000);
Date
のさまざまなメソッドにアクセスして、分数、時間数などを表示できます。
さらに正確な値を読みたい場合は、System . currentTimeMillis ()またはSystem . nanoTime ()を使用してください。通常、ユーザーに値を出力する必要がある場合は、ミリ秒で十分です。さらに、System.nanoTime()
は負の値を返す可能性があるため、そのメソッドを使用している場合は戻り値が正しくない可能性があります。
一般的で広く使用されているのは、ミリ秒を使用することです。
long start = System.currentTimeMillis();
...
long end = System.currentTimeMillis();
NumberFormat formatter = new DecimalFormat("#0.00000");
System.out.print("Execution time is " + formatter.format((end - start) / 1000d) + " seconds");
通常、ナノ秒は、単体テストやベンチマークなど、非常に短く正確なプログラム実行の計算に使用されます。したがって、プログラム全体の実行には、ミリ秒が望ましいです。
これに対する一般的なアプローチは次のとおりです。
main()
の開始時と言います。main()
の最後で時間を計ってください。ヒント:System.nanoTime()
またはSystem.currentTimeMillis()
を見てください。
アプリケーションが起動した時間を取得し、それをアプリケーションが終了した時間と比較する必要があります。
アプリが起動したら、
Calendar calendar = Calendar.getInstance();
// Get start time (this needs to be a global variable).
Date startDate = calendar.getTime();
アプリケーションが終了したとき
Calendar calendar = Calendar.getInstance();
// Get start time (this needs to be a global variable).
Date endDate = calendar.getTime();
違いを(ミリ秒単位で)取得するには、次のようにします。
long sumDate = endDate.getTime() - startDate.getTime();
よく知られている(そして既に言及されている)System.currentTimeMillis()
とSystem.nanoTime()
の他に、 perf4j というきちんとしたライブラリーもあります。