Java时间测量
时间:2020-01-09 10:35:57 来源:igfitidea点击:
使用Java来测量时间最容易通过System.currentTimeMillis()方法完成。
我们要做的是获取要测量的操作前后的时间,然后计算时间差。这是一个例子:
long startTime = System.currentTimeMillis(); callOperationToTime(); long endTime = System.currentTimeMillis(); long totalTime = endTime - startTime;
变量" totalTime"现在将包含执行" callOperationToTime()"方法所花费的总时间。
重复操作
由于System.currentTimeMillis()不能准确返回时间,因此最好执行多次测量操作。可能是10、100或者1.000次。也许更多。这样,可以消除大粒度时间值(每毫秒不变的值)引起的不准确性。
重复进行多次测量的另一个很好的理由是,允许Java虚拟机加载包含代码的类,进行JIT编译,甚至优化。
计时器类
本文前面列出的计算相当琐碎但繁琐,可以封装在" Timer"类中。这是一个草图:
public class Timer {
private long startTime = 0;
private long endTime = 0;
public void start(){
this.startTime = System.currentTimeMillis();
}
public void end() {
this.endTime = System.currentTimeMillis();
}
public long getStartTime() {
return this.startTime;
}
public long getEndTime() {
return this.endTime;
}
public long getTotalTime() {
return this.endTime - this.startTime;
}
}
这是一个如何使用它的示例:
Timer timer = new Timer(); timer.start(); callOperationToTime(); timer.end(); long totalTime = timer.getTotalTime();

