如何计时这个执行?

时间:2015-04-12 01:38:28

标签: java timer

我正在尝试执行此循环,但是当我编译它运行正常时,我只得到输出"总执行时间:0"

package Time;

public class Time {

public Time() {
    // TODO Auto-generated constructor stub
}

public static void main(String[] args) {
    final long startTime = System.currentTimeMillis();
    int n = 0;
    int sum = 0;
    for (int i = 0; i <= n; i++) {
          for (int j = 1; j <= 1000; j++)
              sum = sum + j;
    }
    final long endTime = System.currentTimeMillis();

    System.out.println("Total execution time: " + (endTime - startTime) );
}

}

3 个答案:

答案 0 :(得分:1)

由于执行速度太快,您可以使用nanoTime来代替:

final long startTime = System.nanoTime();
final long endTime = System.nanoTime();

System.out.println("Total execution time: " + (endTime - startTime));

答案 1 :(得分:1)

只需增加循环中的金额。

或做一个更重的数学方程式。

此外,使用System.nanoTime()进行纳米计时。

public static void main(String[] args)
{
    // 1 second = 0.000000001 nanoseconds

    long startTime = System.nanoTime();

    int n = 0;
    int sum = 0;
    for (int i = 0; i <= n; i++)
    {
        for (int j = 1; j <= 1_000_000_000; j++)
            sum = sum + j;
    }

    System.out.printf("Total execution time: %07.3f secs", 

        (System.nanoTime() - startTime) * 1e-9);
}

答案 2 :(得分:0)

首先n为零,使外for循环实际无用(只输入一次)。第二:

for (int j = 1; j <= 1000; j++)

1000000中制作1000。也许你会得到一些结果。对于合理的时间测量,当前的执行速度太快了。