Dokładność vs. Precyzja
Chciałbym wiedzieć, czy powinienem używać System.currentTimeMillis () czy System.nanoTime () podczas aktualizacji pozycji mojego obiektu w mojej grze? Ich zmiana ruchu jest wprost proporcjonalna do czasu, jaki upłynął od ostatniego połączenia i chcę być tak precyzyjny, jak to możliwe.
Czytałem, że istnieją poważne problemy z rozdzielczością czasową między różnymi systemami operacyjnymi (mianowicie, że Mac / Linux ma rozdzielczość prawie 1 ms, podczas gdy Windows ma rozdzielczość 50ms ??). Głównie uruchamiam moje aplikacje w systemie Windows, a rozdzielczość 50 ms wydaje się dość niedokładna.
Czy są lepsze opcje niż dwie wymienione na liście?
Wszelkie sugestie / komentarze?
System.currentTimeMillis()
: pzemtsov.github.io/2017/07/23/the-slow-currenttimemillis.html
nanoTime
jest zwykle znacznie bardziej dokładny niż currentTimeMillis, ale jest to również stosunkowo droga rozmowa.currentTimeMillis()
działa na kilku (5-6) zegarach procesora, nanoTime zależy od podstawowej architektury i może wynosić ponad 100 zegarów procesora.