【发布时间】:2014-04-16 12:30:51
【问题描述】:
昨天我在搞 Java,我写了这个应用程序。
public class MaxInt {
public static void main(String[] args){
long startTime = System.currentTimeMillis();
long endTime;
for(int i = 0; i < 2147483647; i++){
}
endTime = System.currentTimeMillis();
long timeneeded = startTime - endTime;
System.out.println("It took " + timeneeded + " milliseconds to count to 2,147,483,646.");
}
}
然而,奇怪的是,循环完成后 timeneeded 等于 -3,这对我来说根本没有任何意义。我只是好奇这个程序为什么以及如何产生时间。
【问题讨论】:
-
循环完成后timeneeded等于-3,这没有任何意义它确实如此。您应该使用
endTime - startTime来获取经过的时间,而不是startTime - endTime。endTime将始终大于startTime。
标签: java process timing benchmarking