Точність Vs. Точність
Що я хотів би знати, чи слід використовувати 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+ тактових процесорів.