Java的日期與時間(三)計算執行時間
Java的日期與時間
三、Java中計算執行時間
在Java中使用System.currentTimeMillis()
來記錄程式執行時間非常簡單。只要在操作前後各記錄一次時間,計算差值即可:
long startTime = System.currentTimeMillis();
callOperationToTime();
long endTime = System.currentTimeMillis();
long totalTime = endTime - startTime;
最終得到的totalTime,即為callOperationToTime()的執行時間。
重複這個操作
因為System.currentTimeMillis()
不能返回精確時間,因為將某個操作執行多次並取平均值,是一個不錯的思路。也許10次,100次,1000次,甚至更多次的測試,可以把誤差磨平。另一個原因是,重複一個操作,可以讓Java虛擬機器載入類時包含這個程式碼,JIT編譯它,也許還會進行優化。
編寫一個Timer類
由於上述程式碼較為繁瑣,我將其封裝在一個Timer類中。如下:
(原作者寫的類其實也很煩,稍微改了改,需要原始碼可上原網站此章節檢視)
public class Timer {
private long startTime = 0;
public void Timer(){
startTime = System.currentTimeMillis();
}
public long getTotalTime() {
long endTime = System.currentTimeMillis();
return startTime - endTime;
}
}
使用方式如下:
Timer timer = new Timer();
callOperationToTime();
long totalTime = timer.getTotalTime();