Python の time.sleep() 関数は、プログラムの実行を一時停止するのに便利なツールです。ただし、特に浮動小数点数を使用する場合、精度に関して疑問があります。
time.sleep() の精度は、基礎となるオペレーティング システムによって異なります。 (OS)。 Windows などの非リアルタイム OS の最小スリープ間隔は約 10 ~ 13 ミリ秒です。
これは何を意味しますか? 50 ミリ秒 (0.05 秒) スリープしようとすると、time.sleep() は最小間隔 (10 ~ 13 ミリ秒) から約 50 ミリ秒だけ一時停止します。
精度を向上させるために、time.sleep() の周囲にループを実装することをお勧めします。関数が意図した時刻より前にウェイクアップした場合、残りの期間スリープ状態に戻ります。
より正確なスリープ間隔が必要な場合は、疑似実数の使用を検討してください。 -time カーネル (Ubuntu の rt カーネル (RT_PREEMPT パッチ セット) など)。これにより、最小スリープ間隔が約 1 ミリ秒に短縮される可能性があります。
非リアルタイム Linux カーネルの最小スリープ間隔は 1 ミリ秒に近くなりますが、時間によっては異なる場合があります。 -決定的な方法。
精度を確保するためのループの例を次に示します:
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)
以上がPython の `time.sleep()` 関数はどのくらい正確ですか?またその精度を向上するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。