Precisión vs. Precisión
Lo que me gustaría saber es si debo usar System.currentTimeMillis () o System.nanoTime () al actualizar las posiciones de mi objeto en mi juego. Su cambio de movimiento es directamente proporcional al tiempo transcurrido desde la última llamada y quiero ser lo más preciso posible.
He leído que hay algunos problemas serios de resolución de tiempo entre diferentes sistemas operativos (es decir, que Mac / Linux tienen una resolución de casi 1 ms mientras que Windows tiene una resolución de 50 ms). Principalmente estoy ejecutando mis aplicaciones en Windows y la resolución de 50 ms parece bastante inexacta.
¿Hay mejores opciones que las dos que enumeré?
¿Alguna sugerencia / comentario?
System.currentTimeMillis()
: pzemtsov.github.io/2017/07/23/the-slow-currenttimemillis.html
nanoTime
es significativamente más preciso que currentTimeMillis, pero también es una llamada relativamente costosa.currentTimeMillis()
se ejecuta en unos pocos (5-6) relojes de CPU, nanoTime depende de la arquitectura subyacente y puede tener más de 100 relojes de CPU.