繁体   English   中英

如何打印经过的时间(秒)java

[英]How to print time elapsed (seconds) java

在我的游戏循环方法中,我试图打印程序在java中运行的时间。 我只是尝试了System.out.println(System.nanoTime() / 1000000); 因为那是一秒钟内的毫秒数。(如果你不知道的话)它打印了接近结束的秒数,但我想要测试目的的确切秒数。 我在网上搜索,有人建议使用我想到的相同公式。 任何人都可以准确一个吗?

将上一次存储在私人会员中。

private long previousTime;

在构造函数中初始化它。

previousTime = System.currentTimeMillis();

将它与run方法中的当前时间进行比较(游戏循环的每次迭代)

long currentTime = System.currentTimeMillis();
double elapsedTime = (currentTime - previousTime) / 1000.0;
System.out.println("Time in seconds : " + elapsedTime);
previousTime = currentTime;

除了提供的其他答案之外,您还可以使用标准库StopWatch ,就像Google的Guava API提供的那样:

Stopwatch stopwatch = new Stopwatch();
stopwatch.start();
calculate();
stopwatch.stop(); // optional

long Seconds= stopwatch.elapsedMillis() / 1000000; // equals 1 second

您可以使用System.currentTimeMillis以毫秒为单位获取当前时间。

如果您在应用程序的开头和结尾处选择此值,则减去这两个值将为您提供应用程序运行的时间。

final long start = System.currentTimeMillis();
// your code here...
final long end = System.currentTimeMillis();
System.out.println("The program was running: " + (end-start) + "ms.");

如果你想在几秒钟内完成,只需将它除以你提到的1000。

System.out.println("The program was running: " + ((double)(end-start)/1000.0d) + "ms.");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM