精度与 精确
我想知道的是在更新对象在游戏中的位置时应该使用System.currentTimeMillis()还是System.nanoTime()?他们的运动变化与自上次通话以来经过的时间成正比,我想尽可能地精确。
我已经读到不同操作系统之间存在一些严重的时间分辨率问题(即Mac / Linux的分辨率几乎为1毫秒,而Windows的分辨率为50毫秒?)。我主要是在Windows上运行我的应用,而50ms的分辨率似乎非常不准确。
是否有比我列出的两个更好的选择?
有什么建议/意见吗?
System.currentTimeMillis()
:pzemtsov.github.io/2017/07/23/the-slow-currenttimemillis.html
nanoTime
通常比currentTimeMillis准确得多,但这也是一个相对昂贵的电话。currentTimeMillis()
运行在几个(5-6)cpu时钟中,nanoTime取决于基础架构,并且可以是100+ cpu时钟。