【发布时间】:2015-09-21 23:24:48
【问题描述】:
由于某种原因,我可以在我的程序中获取开始时间和停止时间(通常相差 3 毫秒),但是当我打印 getElapsedTime() 方法的结果时,它总是返回 0。列出的代码是创建一个名为sortTime 的StopWatch 对象。
也许四舍五入有问题?
可能getElapsedTime()方法本身有问题?
System.out.println(sortTime.start()); // Start Timer
java.util.Arrays.sort(numbers); // Sort the array
System.out.println(sortTime.stop());// stop timer
System.out.println("the elapsed time is: " + sortTime.getElapsedTime());
}
} //end of main class (used for testing)
//Define Class
class StopWatch {
long startTime;
long endTime;
//Constructors
public StopWatch () {
}
//Methods
long start() {
long startTime = System.currentTimeMillis();
return startTime;
}
long stop() {
long endTime = System.currentTimeMillis();
return endTime;
}
long getElapsedTime() {
return (endTime - startTime);
}
}
例如,当我运行程序时,结果是:
1442877972466
1442877972469
经过的时间是:0
【问题讨论】:
-
相关:测量经过的时间不要使用
System.currentTimeMillis(),因为它可能是错误的。 stackoverflow.com/a/1776053
标签: java