Seite 1 von 1

Zeit mit Python messen - time.ticks_ms() und time.ticks_us() vs. time.time()

Verfasst: Samstag 23. März 2024, 20:50
von lagerschaden
in Micropython gibt es eine clevere Funktion: time.ticks_ms() bzw time.ticks_us(), damit kann man wunderbar die Zeit zwischen zwei Ereignissen messen https://docs.micropython.org/en/latest/ ... /time.html

Im "normalen" Python gibt es das nicht, time.time() ist kein gleichwertiger Ersatz, denn time.time() liefert fehlerhafte Ergebnisse, wenn zwischen den Ereignissen die Zeit nachreguliert wird, z.B. per NTP oder der Winterzeit-/Sommerzeit -Umstellung.

Gibt es im "normalen" Python, wie es z.B. auf dem RaspberryPi / OrangePi /BananaPi etc. läuft, etwas vergleichbares?

L.S.

Re: Zeit mit Python messen - time.ticks_ms() und time.ticks_us() vs. time.time()

Verfasst: Samstag 23. März 2024, 20:56
von sparrow
Man verwendet zur Zeitmessung time.monotonic().

Re: Zeit mit Python messen - time.ticks_ms() und time.ticks_us() vs. time.time()

Verfasst: Samstag 23. März 2024, 21:45
von lagerschaden
time.monotonic() und time.monotonic_ns() sehen gut aus, die werde ich mal testen.

Danke.
L.S.

Re: Zeit mit Python messen - time.ticks_ms() und time.ticks_us() vs. time.time()

Verfasst: Samstag 23. März 2024, 21:55
von lagerschaden
time.monotonic() sind offensichtlich die Sekunden seit dem Start des Rechners (statt seit dem 01.01.1070 wie bei time.time()), das werde ich gleich mal bei der Zeitumstellung in 1 Woche auf diversen Rechnern testen.

L.S:

Re: Zeit mit Python messen - time.ticks_ms() und time.ticks_us() vs. time.time()

Verfasst: Samstag 23. März 2024, 21:59
von sparrow
@lagerschaden: Nicht ganz. Laut Dokumentation ist "time.monotonic()" undefiniert. Es ist nicht relevant, wie eine Implementation das letztendlich löst. Relevant ist ausschließlich, dass garantiert ist, dass die Differenz zwischen zwei Aufrufen immer fortlaufend und unabhängig von der Systemuhr ist.