如何计算程序在运行时消耗的时间

时间:2015-12-11 15:41:23

标签: java performance

我正在尝试计算程序消耗的时间。但是下面显示的两种方法有什么区别?

System.currentTimeMillis() % 1000
System.currentTimeMillis() / 1000

3 个答案:

答案 0 :(得分:0)

我假设您在几秒钟内除以1000就想要它? 无论如何,模数运算符%不是你想要的,它通过第二个操作数为你提供除法的余数。

要获取某些代码的运行时,请在执行前获取当前时间,并在执行后获取。运行时将是两者之间的差异。

System timeBefore = System.currentTimeMillis();
//PUT CODE HERE
System timeAfter = System.currentTimeMillis();

System timeDelta = timeAfter = timeBefore;
System.out.println("Runtime was " + timeDelta + " millis"); //display milliseconds
System.out.println("Runtime was " + (timeDelta / 1000) + " seconds"); //display seconds

答案 1 :(得分:0)

你可能想尝试这样的事情:

public static void main(String[] args) throws InterruptedException{
    long t1 = System.nanoTime();
    Thread.sleep(3000L);//do your work here
    long t2 = System.nanoTime();
    long result = t2 - t1;
    result = result / 1000000000;
    System.out.println(result);
}

这会在几秒钟内给你时间......

输出:

3

答案 2 :(得分:-1)

两种方法的解释

  

System.currentTimeMillis()/ 1000

/是除法运算符。
它会返回System.currentTimeMillis()除以1000的结果。这通常用于将毫秒转换为秒。

  

System.currentTimeMillis()%1000

%是余数运算符。
它将返回除法后剩余的余数1000(模数)。

Oracle提供了Java-Operators的完整列表。

标题中的问题示例

如果您希望从应用程序中获得总的正常运行时间,您可以轻松地从Java运行时接收它:

ManagementFactory.getRuntimeMXBean().getUptime()

这将以毫秒为单位返回程序的运行时。通过将其除以1000,您将获得程序运行的秒数。

<强>优势

  • 您不必自己处理时间测量