System.currentTimeMillis对System.NanTime准确性VS。精密度我想知道的是我是否应该用System.currentTimeMillis()或System.NanTime()当更新我的目标在我的游戏中的位置?它们的运动变化与上次调用以来的时间成正比,我希望尽可能精确。我读到过不同操作系统之间存在一些严重的时间分辨率问题(即Mac/Linux有将近1ms的分辨率,而Windows有50 ms的分辨率?)。我主要是在Windows上运行我的应用程序,而50 ms的分辨率看起来非常不准确。有比我列出的两个更好的选择吗?有什么建议/意见吗?
3 回答
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
System.nanoTime()
. System.currentTimeMillis()
System.nanoTime()
public static long nanoTime()
返回最精确可用系统定时器的当前值(以纳秒为单位)。
这种方法只能用于测量经过的时间,而与系统或挂钟时间的任何其他概念无关。返回的值表示某个固定但任意时间的纳秒(可能在将来,因此值可能为负值)。这种方法提供纳秒精度,但不一定是纳秒精度。没有保证价值观变化的频率。持续时间超过292年的连续呼叫的差异(2 63由于数值溢出,无法精确计算经过的时间。
long startTime = System.nanoTime(); // ... the code being measured ... long estimatedTime = System.nanoTime() - startTime;
冉冉说
TA贡献1877条经验 获得超1个赞
System.nanoTime()
System.currentTimeMillis()
添加回答
举报
0/150
提交
取消