Die Funktion time.sleep() von Python ist ein nützliches Werkzeug zum Anhalten der Ausführung eines Programms. Es gibt jedoch Fragen hinsichtlich der Genauigkeit, insbesondere bei der Verwendung von Gleitkommazahlen.
Die Genauigkeit von time.sleep() hängt vom zugrunde liegenden Betriebssystem ab (Betriebssystem). Nicht-Echtzeit-Betriebssysteme wie Windows haben ein minimales Ruheintervall von etwa 10–13 Millisekunden.
Was bedeutet das? Wenn Sie versuchen, 50 Millisekunden (0,05 Sekunden) lang zu schlafen, pausiert time.sleep() möglicherweise nur etwa 50 Millisekunden ab dem Mindestintervall (10–13 ms).
Um die Genauigkeit zu verbessern, wird empfohlen, eine Schleife um time.sleep() zu implementieren. Wenn die Funktion vor der vorgesehenen Zeit aktiviert wird, geht sie für die verbleibende Dauer wieder in den Ruhezustand über.
Wenn Sie genauere Schlafintervalle benötigen, sollten Sie die Verwendung eines Pseudo-Real-Intervalls in Betracht ziehen -time-Kernel, wie zum Beispiel der RT-Kernel von Ubuntu (RT_PREEMPT-Patch-Set). Dies kann das minimale Ruheintervall auf etwa 1 Millisekunde reduzieren.
Nicht-Echtzeit-Linux-Kernel haben ein minimales Ruheintervall, das näher bei 1 Millisekunde liegt, es kann jedoch in einem Nicht-Echtzeit-Linux-Kernel variieren -deterministische Weise.
Hier ist ein Beispiel mit einer Schleife zu Achten Sie auf Genauigkeit:
import time target_sleep_time = 0.05 # 50 milliseconds start_time = time.time() while True: elapsed_time = time.time() - start_time if elapsed_time >= target_sleep_time: break time.sleep(target_sleep_time - elapsed_time)
Das obige ist der detaillierte Inhalt vonWie genau ist die Funktion „time.sleep()' von Python und wie kann ich ihre Präzision verbessern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!