试图在Java中测量经过的时间

问题描述 投票:2回答:8

我无法获得Java时钟来测量从简单程序的开始到结束所经过的时间(以毫秒为单位)。>>

我已在下面复制了程序。您会看到我使用了日历实用程序,然后在循环之前和之后打印了时间。无论循环花费多长时间,循环之前和之后print命令显示的时间都不会改变。

您可以提出解决方案吗?

我使用DrJava。

import java.util.Calendar;

class time
{
  public static void main(String[] args)
  {

    int sum=0;
    int i=0;
    int j=0;
    int n=300;

    Calendar cal = Calendar.getInstance();

    System.out.println("Current milliseconds since 13 Oct, 2008 are :" + cal.getTimeInMillis());

    for (i=0;i < n; i++)
    {
      sum++;
      System.out.println("ROW " + i);  
    }

    System.out.println(" Current milliseconds since 13 Oct, 2008 are :" + cal.getTimeInMillis());
  } 
}

我无法获得Java时钟来测量从简单程序的开始到结束所经过的时间(以毫秒为单位)。我已经在下面复制了程序。您将看到我使用了实用程序...

java
8个回答
12
投票

使用


6
投票

如果要精确测量经过时间,请使用System.nanoTime()


4
投票

来自文档:


2
投票

而且,即使以毫秒为单位,一个简单循环的300次迭代也不大可能在任何时间注册。您可能要尝试30万(300000)或更多的迭代。


2
投票
getTimeInMillis()

1
投票

关于您的选择为何无法达到预期效果的明确说明。


0
投票

正如Greg所建议的,您应该进行大量的迭代。他的论点是正确的-从统计学上讲,拥有更大的样本将产生更准确的结果(这将消除由于不可控事件(例如gc,环境等)导致的随机偏差。]


0
投票

从Java 8开始,您可以尝试以下操作:

© www.soinside.com 2019 - 2024. All rights reserved.