在我的游戏循环方法中,我试图打印程序在java中运行的时间。我只是尝试了System.out.println(System.nanoTime() / 1000000);
,因为它是一秒钟内的毫秒数。(如果你不知道的话)它打印了接近结束的秒数,但我想要精确的秒来进行测试。我在网上搜索,有人建议使用我想到的相同公式。任何人都可以给出一个确切的吗?
答案 0 :(得分:1)
将上一次存储在私人会员中。
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;
答案 1 :(得分:1)
除了提供的其他答案外,您还可以使用标准库StopWatch,就像Google的Guava API提供的那样:
Stopwatch stopwatch = new Stopwatch();
stopwatch.start();
calculate();
stopwatch.stop(); // optional
long Seconds= stopwatch.elapsedMillis() / 1000000; // equals 1 second
答案 2 :(得分:0)
您可以使用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.");