java - 为什么我不能使用 java.util.Date 类中的 getTime() 来测量耗时?

标签 java time

我想测量 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/

相关文章:

java - tomcat7日志不断重复同样的错误

java - Eclipse - IInAppBillingServide.aidl

mysql - 每天统计消息数(17 :00 counts for next day) 之后

javascript - 如何以 24 小时格式比较 2 个时间,以检查 1 个时间是否早于另一个时间

c - C 中数组的大小是否会影响访问或更改数组中的一段数据的时间

c - 带时间计数的负数

java - 尝试在 Android Studio 中运行默认 map Activity 时出现模拟器错误

java - 捕获 ENTER 键事件并改为单击

java - 哪个 jar 和 spring 版本<mvc :resource> come?

c++ - 有没有办法在结构中存储日期和时间? C++