This post introduces several ways to find out how long a python script takes to complete its execution.
- If you are using Linux or Mac OS, in your terminal
$ time ./your_script.py
- Several ways to do the task by adding a few lines of code in your py script.
import time
startTime = time.time()
your_func()
#python3: print ("It took", time.time() - startTime, "seconds.")
See the following for an example in python 3.
import time import functools startTime = time.time() print(functools.reduce(lambda x,y: x+y, [47,11,42,13])) #python3: print ("It took", time.time() - startTime, "seconds.")
Another way to do the same thing:
from datetime import datetime
startTime = datetime.now()
#do something
#Python 2:
print datetime.now() - startTime
#Python 3:
print(datetime.now() - startTime)
One more way to do the same thing with a nicely formatted output.
import sys
import timeit
startTime = timeit.default_timer()
#do some nice things...
stopTime = timeit.default_timer()
totalRunningTime = stopTime - startTime
# output running time in a nice format.
mins, secs = divmod(totalRunningTime, 60)
hours, mins = divmod(mins, 60)
sys.stdout.write("Total running time: %d:%d:%d.\n" % (hours, mins, secs))
If you want to compare two blocks of code / functions quickly you can do the following:
import timeit
startTime = timeit.default_timer()
your_func1()
#python3
print(timeit.default_timer() - startTime)
startTime2 = timeit.default_timer()
your_func2()
#python3
print(timeit.default_timer() - starTime2)