Combien de temps combien de temps un programme en Python pour exécuter?
Est-il un moyen simple de temps un programme en Python de l'exécution?
précisions: Ensemble de programmes
Vous devez vous connecter pour publier un commentaire.
Est-il un moyen simple de temps un programme en Python de l'exécution?
précisions: Ensemble de programmes
Vous devez vous connecter pour publier un commentaire.
Utilisation
timeit
:Vous aurez besoin d'un python déclaration dans une chaîne de caractères; si vous avez une fonction principale dans votre code, vous pouvez l'utiliser comme ceci:
La deuxième corde assure l'installation, l'environnement pour la première instruction à être programmé dans. La deuxième partie n'est pas chronométré, et est prévu pour le paramétrage de la scène, comme elle l'avait fait. La première chaîne est ensuite exécuté à travers ses rythmes; par défaut, un million de fois, pour obtenir des timings précis.
Si vous avez besoin de plus de détails quant à l'endroit où les choses sont lentes, utiliser l'un des
python profileurs
:Le moyen le plus facile pour exécuter c'est à l'aide de la
cProfile
module à partir de la ligne de commande:timeit
est pour les micro-benchmarks: petit programme extraits, et non l'ensemble des programmes.timeit
est très bien. Si vous avez besoin de savoir où il est lent dans un programme plus large, vous avez besoin de profil.Timer('myProg()', 'from __main__ import myProg')
devrait le faire..timeit()
avec un nombre inférieur; de sorte.timeit(10)
va l'exécuter 10 fois.timeit
est le mauvais outil ici. Même dix fois plus n'est pas nécessaire pour le calendrier de 1 seconde-run (pour un salon de référence parmi de multiples options, oui, mais pas pour avoir une idée de combien de temps un seul programme prend). La répétition n'est construit danstimeit
parce que c'est pour microbenchmarks l'OS et de la planification peuvent avoir énorme impact sur les extraits qui prennent moins d'une microseconde ou moins à la course, et elle n'a pas de mal à passer une demi-seconde (plutôt que de finir instantanément) pour des résultats beaucoup plus précis.timeit
approche). Mais maintenant, votre réponse est acceptée, donc il est quelque peu discutable.time
, comme Steven Rumbalski suggéré, et je crois que Powershell a un équivalent). C'est plus précis car il comprend Python démarrage et au niveau du module code (importations, définitions, etc.) et si vous voulez tenir compte des différences en raison d'OS de planification, vous pouvez toujours exécuter trois fois.Vous pouvez utiliser intégré dans profiler.
Vous pouvez aussi la fonction de mesure du temps d'écoulement en utilisant suivantes simple décorateur:
Utilisation:
time.clock
n'est pas le plus précis de l'horloge sur toutes les plateformes (cf.default_clock()
défini partimetit
), et la production est très limitée (mêlé avec le programme de sortie de, besoin de recueillir et d'analyser à la main). Des problèmes mineurs comprennent pas de comptabilité pour les exceptions et n'utilisant pas defunctools.wrap
.Si vous êtes sur Linux/Unix/POSIX-combatible plate-forme juste utiliser
temps
. De cette façon, vous n'interfère pas avec le script et de ne pas ralentir inutilement détaillées (pour vous) de profilage. Naturellement, vous pouvez l'utiliser pour beaucoup de choses, pas seulement des scripts Python.Pour les extraits de l'utilisation de la
timeit
module.Pour l'ensemble des programmes de l'utilisation de la
cProfile
module.Utilisation timeit