Genauigkeit Vs. Präzision
Was würde Ich mag es , wissen , ob ich verwenden sollte System.currentTimeMillis () oder System.nanoTime () , wenn mein Objekt der Positionen in meinem Spiel zu aktualisieren? Ihre Bewegungsänderung ist direkt proportional zur seit dem letzten Anruf verstrichenen Zeit, und ich möchte so genau wie möglich sein.
Ich habe gelesen, dass es einige schwerwiegende Probleme mit der Zeitauflösung zwischen verschiedenen Betriebssystemen gibt (nämlich, dass Mac / Linux eine Auflösung von fast 1 ms hat, während Windows eine Auflösung von 50 ms hat ??). Ich verwende meine Apps hauptsächlich unter Windows und eine Auflösung von 50 ms scheint ziemlich ungenau zu sein.
Gibt es bessere Optionen als die beiden, die ich aufgelistet habe?
Anregungen / Kommentare?
System.currentTimeMillis()
: pzemtsov.github.io/2017/07/23/the-slow-currenttimemillis.html
nanoTime
ist in der Regel wesentlich genauer als currentTimeMillis, aber es ist auch ein relativ teurer Anruf.currentTimeMillis()
läuft in wenigen (5-6) CPU-Uhren, nanoTime hängt von der zugrunde liegenden Architektur ab und kann über 100 CPU-Uhren sein.