Quelle est la bonne façon de comparer 2 fois en Python pour accélérer le test d'une section de code? J'ai essayé de lire la documentation de l'API. Je ne suis pas sûr de comprendre la chose timedelta.
Jusqu'à présent, j'ai ce code:
from datetime import datetime
tstart = datetime.now()
print t1
# code to speed test
tend = datetime.now()
print t2
# what am I missing?
# I'd like to print the time diff here
python
datetime
time
time-measurement
BuddyJoe
la source
la source
Réponses:
datetime.timedelta
est juste la différence entre deux datetimes ... donc c'est comme une période de temps, en jours / secondes / microsecondesSachez que
c.microseconds
ne renvoie que la partie microsecondes du timedelta! À des fins de chronométrage, utilisez toujoursc.total_seconds()
.Vous pouvez faire toutes sortes de maths avec datetime.timedelta, par exemple:
Il pourrait être plus utile de regarder le temps CPU plutôt que l'heure de l'horloge murale ... cela dépend du système d'exploitation cependant ... sous les systèmes de type Unix, consultez la commande 'time'.
la source
int(c.total_seconds() / 60)
dans ce casDepuis Python 2.7, il existe la méthode timedelta.total_seconds (). Donc, pour obtenir les millisecondes écoulées:
la source
Vous voudrez peut-être utiliser le module timeit à la place.
la source
Vous pouvez également utiliser:
Ou vous pouvez utiliser les profileurs python .
la source
start = time.clock()
il imprimeDeprecationWarning: time.clock has been deprecated in Python 3.3 and will be removed from Python 3.8: use time.perf_counter or time.process_time instead
.Je sais que c'est tard, mais j'aime vraiment utiliser:
time.time()
vous donne des secondes depuis l'époque. Comme il s'agit d'un temps normalisé en secondes, vous pouvez simplement soustraire l'heure de début de l'heure de fin pour obtenir l'heure du processus (en secondes).time.clock()
est bon pour l'analyse comparative, mais je l'ai trouvé un peu inutile si vous voulez savoir combien de temps votre processus a pris. Par exemple, il est beaucoup plus intuitif de dire "mon processus prend 10 secondes" que de dire "mon processus prend 10 unités d'horloge processeur"Dans le premier exemple ci-dessus, vous voyez une heure de 0,05 pour time.clock () vs 0,06377 pour time.time ()
Dans le deuxième exemple, le temps du processeur indique "0" même si le processus a dormi pendant une seconde.
time.time()
montre correctement un peu plus de 1 seconde.la source
import time
déclarationLe code suivant doit afficher l'heure detla ...
la source
Vous pouvez simplement imprimer la différence:
la source
Je ne suis pas un programmeur Python, mais je sais utiliser Google et voici ce que j'ai trouvé: vous utilisez l'opérateur "-". Pour compléter votre code:
De plus, il semble que vous puissiez utiliser la fonction strftime () pour formater le calcul de la période afin de rendre l'heure, mais cela vous rend heureux.
la source
time.time () / datetime est bon pour une utilisation rapide, mais n'est pas toujours précis à 100%. Pour cette raison, j'aime utiliser l'un des profileurs std lib (en particulier hotshot) pour savoir ce qui est quoi.
la source
Vous voudrez peut-être examiner les modules de profil . Vous obtiendrez une meilleure lecture de vos ralentissements et une grande partie de votre travail sera entièrement automatisée.
la source
Voici une fonction personnalisée qui imite les fonctions de Matlab / Octave
tic
toc
.Exemple d'utilisation:
Fonction :
la source
Vous pouvez utiliser timeit comme ceci pour tester un script nommé module.py
la source
Flèche: meilleures dates et heures pour Python
la source