Precisão vs. Precisão
O que eu gostaria de saber é se devo usar System.currentTimeMillis () ou System.nanoTime () ao atualizar as posições do meu objeto no meu jogo? A mudança de movimento deles é diretamente proporcional ao tempo decorrido desde a última ligação e eu quero ser o mais preciso possível.
Eu li que existem alguns problemas sérios de resolução de tempo entre diferentes sistemas operacionais (ou seja, que o Mac / Linux tem uma resolução de quase 1 ms, enquanto o Windows tem uma resolução de 50ms?). Estou executando meus aplicativos principalmente no Windows e a resolução de 50ms parece bastante imprecisa.
Existem opções melhores que as duas que eu listei?
Alguma sugestão / comentário?
System.currentTimeMillis()
: pzemtsov.github.io/2017/07/23/the-slow-currenttimemillis.html
nanoTime
geralmente é mais preciso que o currentTimeMillis, mas também é uma ligação relativamente cara.currentTimeMillis()
executado em alguns (5-6) relógios da CPU, o nanoTime depende da arquitetura subjacente e pode ter mais de 100 relógios da CPU.