Java的日期与时间
作者:Jakob Jenkov
三、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();