gpt4 book ai didi

java - 获取耗时并重置它的正确方法是什么

转载 作者:行者123 更新时间:2023-12-02 07:21:50 24 4
gpt4 key购买 nike

在我的 Android 程序中,我使用两个日历实例来获取程序中耗时,首先我设置一个关卡开始时间,如下所示:

level_Start_TimeCal = Calendar.getInstance();   

在我的线程中,我计算耗时如下:

level_current_TimeCal = Calendar.getInstance();
gameTime = level_current_TimeCal.getTimeInMillis()- level_Start_TimeCal.getTimeInMillis();
dsecs = (gameTime / 1000)%60;
dminutes = (gameTime / (60 * 1000))%60;
dhours = (gameTime / (60 * 60 * 1000))%60;

最近我读到了以下内容:

Calendar's getInstance method returns a Calendar object whose calendar fields have been initialized with the current date and time

我想知道我走的路是否正确?
我是否在每次线程运行时创建一个对象?
如果是,是否有其他方法可以避免创建不需要的对象并计算耗时?最后一个问题:在某些时候,我想重置重新启动方法中的时间,我只需在重置方法中调用 getInstance 即可重置它,如下所示:

public void restart() {
level_Start_TimeCal = Calendar.getInstance();
}

这是重置日历的正确方法吗?

最佳答案

计算耗时的最佳方法是使用 System.nanotime() .

long start = System.nanoTime();
//do something
long end = System.nanoTime();

//to get the elapsed time, you can use the TimeUnit utility methods:
long elapsedInNanos = end - start;
long elapsedInSeconds = TimeUnit.SECONDS.convert(elapsedInNanos, TimeUnit.NANOSECONDS);

请注意,这不是访问绝对时间的有用方法。

关于java - 获取耗时并重置它的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14109100/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com