興味深いことに、私の計算プログラムが実行される時間を知ることができればうれしいです (例: Project Euler ソリューション)。さまざまなソリューションを使用して時間から何ミリ秒を絞り出せるかを確認するか、大きな数を処理するのにどれくらいの時間がかかるかを確認します。通常、そのようなプログラムは で終わりSystem.out.println
、答えを出力します。println
「プログラムには数秒かかりました」などの別の .
3 に答える
呼び出しを使用して、合計ミリ秒数を簡単に取得できSystem.currentTimeMillis()
ます (粒度は OS に依存し、完全に正確ではない場合があります)。例:
long start = System.currentTimeMillis();
// portion of code
long stop = System.currentTimeMillis();
System.out.println("Time: " + (stop - start) + " ms");
この例を見てください: http://www.roseindia.net/java/java-get-example/get-execution-time.shtml 別の完全ではあるが異なる実装があります: http://www.mkyong.com/java /how-do-calculate-elapsed-execute-time-in-Java/
あなたが使用することができます:
long start = System.nanoTime();
// do something
long took = System.nanoTime() - start;
ドキュメントから:
最も正確な利用可能なシステム タイマーの現在の値をナノ秒単位で返します。このメソッドは、経過時間を測定するためにのみ使用でき、システム時間またはウォールクロック時間の他の概念とは関係ありません。返される値は、固定された任意の時間からのナノ秒を表します (おそらく将来であるため、値は負の可能性があります)。この方法はナノ秒の精度を提供しますが、必ずしもナノ秒の精度ではありません。値が変更される頻度については保証されません。約 292 年 (263 ナノ秒) を超える連続する呼び出しの違いは、数値のオーバーフローのため、経過時間を正確に計算できません。