Javaでプロセスの実行時間を測定する方法
Javaでは、**System.currentTimeMillis()**か**System.nanoTime()**を用いてプログラム実行時間を計測できます。
- System.currentTimeMillis()メソッドを使用する:
long startTime = System.currentTimeMillis();
// 程序主体代码
long endTime = System.currentTimeMillis();
long elapsedTime = endTime - startTime;
System.out.println("程序执行时间(毫秒):" + elapsedTime);
- System.nanoTime() メソッドを使う
long startTime = System.nanoTime();
// 程序主体代码
long endTime = System.nanoTime();
long elapsedTime = endTime - startTime;
System.out.println("程序执行时间(纳秒):" + elapsedTime);
両メソッドの違いは精度と可読性の有無にあります。System.currentTimeMillis()は1970年1月1日00:00:00 UTCからのミリ秒数を返しますが、精度がミリ秒になります。一方System.nanoTime()はシステムのナノ秒数を返しますが、より精度が高く、相対時刻を返すため可読性はありません。
別の方法として、繰り返し処理時間を測定する必要がある場合は、タイマーのクラスを使用して上記のコードをラップできます。例:
public class Timer {
private long startTime;
private long endTime;
public void start() {
startTime = System.nanoTime();
}
public void end() {
endTime = System.nanoTime();
}
public long getElapsedTime() {
return endTime - startTime;
}
}
使用例:
Timer timer = new Timer();
timer.start();
// 程序主体代码
timer.end();
System.out.println("程序执行时间(纳秒):" + timer.getElapsedTime());