176 votes

Déterminez le temps nécessaire à l'exécution d'un script python

J'ai le code suivant dans un script python:

 def fun()
  #Code here

fun()
 

Je veux exécuter ce script et aussi savoir combien de temps il a fallu pour exécuter en quelques minutes. Comment savoir combien de temps il a fallu pour exécuter ce script? .Cet exemple serait vraiment apprécié.

Je vous remercie

318voto

Petar Ivanov Points 29530
from datetime import datetime

startTime = datetime.now()

#do something

print(datetime.now()-startTime)

155voto

Roy Points 13839

Exécutez-vous le script à partir de la ligne de commande sous Linux ou UNIX? Dans ce cas, vous pouvez simplement utiliser

 time ./script.py
 

79voto

Double AA Points 889
import time
start = time.time()

fun()

print 'It took', time.time()-start, 'seconds.'

18voto

Darren Yin Points 427

Ce que j'ai l'habitude de faire est d'utiliser clock() ou time() de la time bibliothèque. clock mesures interprète temps, tandis que l' time système de mesures du temps. Autres limitations peuvent être trouvés dans les docs.

Par exemple,

def fn():
    st = time()
    dostuff()
    print 'fn took %.2f seconds' % (time() - st)

Ou sinon, vous pouvez utiliser timeit. J'utilise souvent l' time approche en raison de la vitesse à laquelle je peux bang, mais si vous êtes timing un isolat-mesure morceau de code, timeit vient dans maniable.

À partir de la timeit docs,

def test():
    "Stupid test function"
    L = []
    for i in range(100):
        L.append(i)

if __name__=='__main__':
    from timeit import Timer
    t = Timer("test()", "from __main__ import test")
    print t.timeit()

Ensuite, pour convertir en minutes, vous pouvez simplement diviser par 60. Si vous voulez que le script d'exécution dans un format facile à lire, si c'est quelques secondes ou quelques jours, vous pouvez convertir en timedelta et str :

runtime = time() - st
print 'runtime:', timedelta(seconds=runtime)

et que vais imprimer quelque chose de la forme [D day[s], ][H]H:MM:SS[.UUUUUU]. Vous pouvez consulter le timedelta docs.

Et enfin, si ce que vous êtes après est de profilage de votre code Python rend disponible le profil de la bibliothèque .

12voto

Rapid Points 158

Utiliser le module timeit. C'est très facile. Exécuter votre example.py fichier de sorte qu'il est actif dans le Python, Shell, vous devriez maintenant être en mesure d'appeler votre fonction dans le shell. Essayez-la pour vérifier qu'il fonctionne

>>>fun(input)
output

Bon, ça marche, maintenant importer timeit et configurer un minuteur

>>>import timeit
>>>t = timeit.Timer('example.fun(input)','import example')
>>>

Maintenant que nous avons notre timer en place, nous pouvons voir combien de temps il faut

>>>t.timeit(number=1)
some number here

Et là, il va vous dire combien de secondes (ou moins) il a fallu pour exécuter cette fonction. Si c'est une fonction simple, alors vous pouvez l'augmenter à t.timeit(nombre=1000) (ou plusieurs!) et ensuite, divisez la réponse par le nombre pour obtenir la moyenne.

J'espère que cette aide.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X