Tengo un programa de línea de comandos en Python que tarda en terminar. Quiero saber el tiempo exacto que tarda en terminar de ejecutarse.
He mirado el módulo timeit
, pero parece que sólo sirve para pequeños fragmentos de código. Quiero cronometrar todo el programa.
La forma más sencilla en Python:
import time
start_time = time.time()
main()
print("--- %s seconds ---" % (time.time() - start_time))
Esto supone que tu programa tarda al menos una décima de segundo en ejecutarse.
Imprime:
--- 0.764891862869 seconds ---
En Linux o UNIX:
time python yourprogram.py
En Windows, consulta esta discusión de Stackoverflow: https://stackoverflow.com/questions/673523/how-to-measure-execution-time-of-command-in-windows-command-line
La solución de rogeriopvl funciona bien, pero si quieres información más específica puedes usar el perfilador incorporado de Python. Consulta esta página:
http://docs.python.org/library/profile.html
un perfilador te dice un montón de información útil como el tiempo empleado en cada función