我想测量Java程序需要做的事情的时间。
仅在书中提到了java.util.Date
类,所以我认为使用它来解决这个问题是正确的(或足够正确)。
我有以下代码:
time.start();
for(int i=0;i<array.length;i++)
array[i]=(int)(Math.random()*100000);
time.stop();
其中time.start()和time.stop(在Java类中):
Date timeMeasured = new Date();
public void start(){
startTime = timeMeasured.getTime();
}
public void stop(){
endTime = timeMeasured.getTime();
}
经过一些研究后我发现我应该使用System.currentTimeMillis()来测量时间,并在尝试之后才能正常工作。我的代码每次都返回0。
有人可以解释原因吗,你能纠正我的代码吗,不管这是不对的做法吗?
答案 0 :(得分:1)
使用默认构造函数创建Date对象时,他将表示创建时间。 因此,{{1}}的任何调用都将返回创建对象的日期,而不是当前时间。
如果不是创建一个全局对象而是每次使用前都会实例化它,那么你的代码就可以工作了,但是创建对象所需的时间可能会搞砸你的计算。