Obtenir minuterie tiques en Python
J'essaie juste de temps un morceau de code. Le pseudo-code ressemble à ceci:
start = get_ticks()
do_long_code()
print "It took " + (get_ticks() - start) + " seconds."
Comment fonctionne ce regard en Python?
Plus précisément, comment puis-je obtenir le nombre de tiques depuis minuit (ou cependant Python organise que le moment)?
- connexes: Mesurer le temps écoulé en Python?
Vous devez vous connecter pour publier un commentaire.
Dans le
time
module, il y a deux fonctions de temporisation:time
etclock
.time
vous donne le "mur" de temps, si c'est ce que vous vous souciez.Cependant, le python docs dire que
clock
doivent être utilisés pour l'analyse comparative. Notez queclock
se comporte différents dans des systèmes distincts:clock
dans votre processus).clock
rapports de temps PROCESSEUR. Maintenant, c'est différent, et probablement la valeur que vous souhaitez, depuis votre programme a peine est toujours le seul processus qui demande temps CPU (même si vous n'avez pas d'autres processus, le noyau utilise CPU de temps dès maintenant). Donc, ce nombre, qui est généralement smaller1 que le mur du temps (c'est à dire le temps.time() - t0), est plus significatif lorsque l'analyse comparative de code:En dehors de tout cela, le timeit module a la
Timer
classe qui est censé utiliser ce qui est le mieux pour l'analyse comparative de la fonctionnalité disponible.1, sauf si le filetage est dans la manière...
2 Python ≥3.3: il y a
temps.perf_counter()
ettemps.process_time()
.perf_counter
est utilisé par letimeit
module.time.clock()
peut avoir une mauvaise précision sur *nix. l'Utilisationtimeit.default_timer
, pour obtenir le meilleur de la minuterie de mesure de la performance en temps sur différents Systèmes d'exploitation et les versions de Python.Ce que vous avez besoin est
time()
fonction detime
module:Vous pouvez utiliser timeit module pour plus d'options si.
Voici une solution que j'ai commencé à utiliser récemment:
Vous l'utilisez comme ceci (Vous devez avoir au moins Python 2.5):
Lorsque votre code se termine, la Minuterie imprime automatiquement le moment de l'exécution. Sweet! Si je suis en train de rapidement banc quelque chose dans l'Interpréteur Python, c'est la meilleure façon d'aller.
Et voici un exemple de mise en œuvre de "maintenant" et "format_delta", mais n'hésitez pas à utiliser votre préféré calendrier et la méthode de formatage.
S'il vous plaît laissez-moi savoir si vous avez un préféré la méthode de formatage, ou si il ya un moyen plus facile de faire tout cela!
La module d' en python vous permet d'accéder à l'horloge() fonction qui retourne le temps en quelques secondes, comme une virgule flottante.
Différents systèmes seront différents de précision basée sur leur horloge interne de l'installation (impulsions par seconde), mais il est généralement d'au moins sous 20milliseconds, et dans certains cas de mieux que quelques microsecondes.
-Adam
À partir de minuit:
Si vous avez beaucoup d'instructions que vous voulez, vous pouvez utiliser quelque chose comme ceci:
Puis votre code pourrait ressembler à:
De cette façon, vous n'avez pas besoin de taper
t = time()
avant chaque bloc et1000 * (time() - t)
après elle, tout en gardant le contrôle sur la mise en forme (bien que vous pouvez facilement mettre enTicket
trop).C'est un gain minime, mais je pense que c'est un peu de pratique.