Maison > Article > développement back-end > Quelle est la précision de la fonction « time.sleep() » de Python et comment puis-je améliorer sa précision ?
La fonction time.sleep() de Python est un outil utile pour suspendre l'exécution d'un programme. Cependant, des questions se posent concernant sa précision, en particulier lors de l'utilisation de nombres à virgule flottante.
La précision de time.sleep() dépend du système d'exploitation sous-jacent. (OS). Les systèmes d'exploitation en temps différé, tels que Windows, ont un intervalle de veille minimum d'environ 10 à 13 millisecondes.
Qu'est-ce que cela signifie ? Si vous essayez de dormir pendant 50 millisecondes (0,05 seconde), time.sleep() ne peut s'arrêter que pendant environ 50 millisecondes à partir de l'intervalle minimum (10-13 ms).
Pour améliorer la précision, il est recommandé d'implémenter une boucle autour de time.sleep(). Si la fonction se réveille avant l'heure prévue, elle se rendormira pour la durée restante.
Si vous avez besoin d'intervalles de sommeil plus précis, pensez à utiliser un pseudo réel -time kernel, tel que le noyau rt d'Ubuntu (ensemble de correctifs RT_PREEMPT). Cela peut réduire l'intervalle de sommeil minimum à environ 1 milliseconde.
Les noyaux Linux non temps réel ont un intervalle de sommeil minimum plus proche de 1 milliseconde, mais il peut varier en un temps non réel. -manière déterministe.
Voici un exemple avec une boucle pour assurer précision :
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)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!