gpt4 book ai didi

java - 是 System.nanoTime();或 System.currentTimeMillis();更适合一场比赛

转载 作者:行者123 更新时间:2023-12-01 16:46:18 26 4
gpt4 key购买 nike

在游戏循环中,每个人都使用 System.nanoTime()但对于动画、速度等,有些人使用 System.currentTimeMillis()有些使用 System.nanoTime() 。我应该使用哪一个?

最佳答案

currentTimeMillis() 实际上是一个挂钟。它的调用成本非常低,但通常(这可能取决于 JVM 实现和硬件)不提供毫秒粒度,并且容易受到漂移的影响。由于CPU核心电压。

nanoTime() 是一个精确的时钟,应用于测量耗时。调用的成本会更高,但只要您每秒不执行数百次,从大局来看就没有什么关系。

使用适合您目的的选项。您可以在Inside the Hotspot VM: Clocks, Timers and Scheduling Events - Part I - Windows中阅读更多相关信息。总结如下:

If you are interested in measuring absolute time then always use System.currentTimeMillis(). Be aware that its resolution may be quite coarse (though this is rarely an issue for absolute times.)

If you are interested in measuring/calculating elapsed time, then always use System.nanoTime(). On most systems it will give a resolution on the order of microseconds. Be aware though, this call can also take microseconds to execute on some platforms.

关于java - 是 System.nanoTime();或 System.currentTimeMillis();更适合一场比赛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49931109/

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