Точность против точность
Я хотел бы знать, должен ли я использовать System.currentTimeMillis () или System.nanoTime () при обновлении позиций моего объекта в моей игре? Их изменение в движении прямо пропорционально времени, прошедшему с момента последнего звонка, и я хочу быть максимально точным.
Я читал, что существуют некоторые серьезные проблемы с разрешением времени между различными операционными системами (а именно, что Mac / Linux имеют разрешение почти 1 мс, в то время как Windows имеет разрешение 50 мс ??). Я в основном запускаю свои приложения на Windows, и разрешение 50 мс кажется довольно неточным.
Есть ли лучшие варианты, чем два, которые я перечислил?
Любые предложения / комментарии?
System.currentTimeMillis()
: pzemtsov.github.io/2017/07/23/the-slow-currenttimemillis.html
nanoTime
обычно значительно точнее, чем currentTimeMillis, но это и относительно дорогой вызов.currentTimeMillis()
работает в нескольких (5-6) процессорных часах, nanoTime зависит от базовой архитектуры и может быть более 100 тактовых процессоров.