Selon le Python documentation Il s'agit de la précision de la fonction temporelle dans différents systèmes d'exploitation :
La fonction de minuterie par défaut est plateforme. Sous Windows, time.clock() a une granularité de l'ordre de la microseconde, mais mais la granularité de time.time() est de 1/60ème de seconde. seconde ; sous Unix, la granularité de time.clock() est de une granularité de 1/100ème de seconde et time.time() est beaucoup plus précis. Sur plate-forme, les fonctions de minuterie par par défaut mesurent le temps d'une horloge murale, et non le temps du processeur. Cela signifie que les autres processus en cours sur le même ordinateur peuvent interférer avec le chronométrage ... Sous Unix, vous pouvez utiliser time.clock() pour mesurer le temps CPU.
Pour tirer directement de timeit.py
Le code de l'entreprise :
if sys.platform == "win32":
# On Windows, the best timer is time.clock()
default_timer = time.clock
else:
# On most other platforms the best timer is time.time()
default_timer = time.time
En outre, il s'occupe directement de configurer le code d'exécution pour vous. Si vous utilisez time
vous devez le faire vous-même. Ceci, bien sûr vous fait gagner du temps
L'installation de Timeit :
def inner(_it, _timer):
#Your setup code
%(setup)s
_t0 = _timer()
for _i in _it:
#The code you want to time
%(stmt)s
_t1 = _timer()
return _t1 - _t0
Python 3 :
Depuis Python 3.3, vous pouvez utiliser time.perf_counter()
(synchronisation à l'échelle du système) ou time.process_time()
(synchronisation à l'échelle du processus), tout comme vous aviez l'habitude d'utiliser la fonction time.clock()
:
from time import process_time
t = process_time()
#do some stuff
elapsed_time = process_time() - t
La nouvelle fonction process_time
ne comprendra pas le temps écoulé pendant le sommeil.
Python 3.7+ :
Depuis Python 3.7, vous pouvez également utiliser process_time_ns()
qui est similaire à process_time()
mais renvoie le temps en nanosecondes.
4 votes
Précision ? En dessous de la seconde ? Comme la plupart des systèmes d'exploitation ont une programmation très souple, ces deux éléments ne vont pas ensemble. Il n'est pas possible de garantir une planification cohérente des événements à la seconde près. Vous aurez une variabilité énorme dans la façon dont votre processus est programmé. Qu'essayez-vous vraiment de faire ?
0 votes
Le module python "profile" ne fournirait-il pas le résultat dont vous avez besoin ?