Mah*_*ine 113 java performance
可能重复:
如何计算方法在Java中的执行时间?
我写了一个程序,现在我想从头到尾计算程序的总运行时间.
我怎样才能做到这一点?
sna*_*ile 228
使用System.nanoTime获取当前时间.
long startTime = System.nanoTime();
.....your program....
long endTime = System.nanoTime();
long totalTime = endTime - startTime;
System.out.println(totalTime);
Run Code Online (Sandbox Code Playgroud)
上面的代码以纳秒为单位打印程序的运行时间.
krt*_*tek 42
在main方法的开头,添加以下代码行:
final long startTime = System.nanoTime();
Run Code Online (Sandbox Code Playgroud)
然后,在main方法的最后一行,您可以添加:
final long duration = System.nanoTime() - startTime;
Run Code Online (Sandbox Code Playgroud)
duration
现在包含程序运行的时间(以纳秒为单位).例如,您可以像这样打印此值:
System.out.println(duration);
Run Code Online (Sandbox Code Playgroud)
如果要以秒为单位显示持续时间,则必须将值除以1'000'000'000.或者如果你想要一个Date
对象:Date myTime = new Date(duration / 1000);
然后你可以访问各种方法Date
来打印分钟数,小时数等.
Yan*_*hon 19
使用系统.currentTimeMillis()或System.nanoTime()如果你想要更精确的阅读.通常,如果您需要将值输出给用户,则毫秒足够精确.此外,System.nanoTime()
可能会返回负值,因此,如果您使用该方法,则返回值可能不正确.
一般而广泛的用途是使用毫秒:
long start = System.currentTimeMillis();
...
long end = System.currentTimeMillis();
NumberFormat formatter = new DecimalFormat("#0.00000");
System.out.print("Execution time is " + formatter.format((end - start) / 1000d) + " seconds");
Run Code Online (Sandbox Code Playgroud)
请注意,纳秒通常用于计算非常短且精确的程序执行,例如单元测试和基准测试.因此,对于整个程序执行,毫秒是优选的.