Od jakiego momentu System.nanoTime() zaczyna notować czas?

Odpowiedz Nowy wątek
2019-11-04 23:36
0

Cześć, od jakiego momentu System.nanoTime() zaczyna notować czas?
Znalazłem kilka odpowiedzi na to pytanie, ale w jednej jest napisane, że od momentu startu systemy(windows, być może), a w drugim - od początku pracy kodu. Jak to jest w rzeczywistości?
Dziękl

pytanie nie ma nic wspólnego z OOP - AnyKtokolwiek 2019-11-06 12:00

Pozostało 580 znaków

2019-11-04 23:41
3

https://docs.oracle.com/javas[...]a/lang/System.html#nanoTime()

This method can only be used to measure elapsed time and is not related to any other notion of system or wall-clock time. The value returned represents nanoseconds since some fixed but arbitrary origin time (perhaps in the future, so values may be negative). The same origin is used by all invocations of this method in an instance of a Java virtual machine; other virtual machine instances are likely to use a different origin.

Read the docs - Charles_Ray 2019-11-05 07:29

Pozostało 580 znaków

2019-11-05 18:40
xy
0

Ta metoda to jest źródło 'monotonic time', czyli od kiedy nie powinno mieć znaczenia. Istotne jest, że kolejne wywołanie zwraca wartość większą niż poprzednie. Można też użyć różnicy i tu może być tylko taki malutki problem z dokładnością, że się generator kwarcowy rozgrzeje i chodzi trochę za szybko.
Natomiast czas 'ścienny' może się nawet cofnąć, jak komputer synchronizuje sobie czas przez NTP, i może też na chwilę zmienić szybkość jak są 'leap secons', dlatego w ogólności źle nadaje się do pomiaru różnicy.

edytowany 1x, ostatnio: xy, 2019-11-05 18:42

Pozostało 580 znaków

2019-11-05 18:42
2

Istotne jest, że kolejne wywołanie zwraca wartość większą niż poprzednie.

Jest mały haczyk. Jeśli origin time to coś bliskiego java.lang.Long.MAX_VALUE to wartość się szybko przepełni. Trzeba więc liczyć różnicę między zwracanymi wartościami i dopiero te różnice z czymkolwiek porównywać.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0