我想测量 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。
有人可以解释一下原因,并且可以更正我的代码,无论这是错误的方法吗?
最佳答案
当你使用默认构造函数创建一个Date对象时,他将代表创建的时间。
因此,任何 getTime()
调用都将返回对象的创建日期,而不是当前时间。
如果您每次使用前都实例化它而不是创建全局对象,那么您的代码将可以工作,但创建该对象所需的时间可能会搞砸您的计算。
关于java - 为什么我不能使用 java.util.Date 类中的 getTime() 来测量耗时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35784084/