164

How do you calculate program run time in python?

JoshAdel
  • 66,734
  • 27
  • 141
  • 140
feisky
  • 1,863
  • 3
  • 14
  • 16
  • Good idea is this answer (short and quick): http://stackoverflow.com/a/1557584/3048464 – Max Jan 13 '15 at 14:34

5 Answers5

346

Quick alternative

import timeit

start = timeit.default_timer()

#Your statements here

stop = timeit.default_timer()

print('Time: ', stop - start)  
Tanya Branagan
  • 551
  • 1
  • 12
  • 21
H.Rabiee
  • 4,747
  • 3
  • 23
  • 35
67

I don't know if this is a faster alternative, but I have another solution -

from datetime import datetime
start=datetime.now()

#Statements

print datetime.now()-start
nsane
  • 1,715
  • 4
  • 21
  • 31
63

You might want to take a look at the timeit module:

http://docs.python.org/library/timeit.html

or the profile module:

http://docs.python.org/library/profile.html

There are some additionally some nice tutorials here:

http://www.doughellmann.com/PyMOTW/profile/index.html

http://www.doughellmann.com/PyMOTW/timeit/index.html

And the time module also might come in handy, although I prefer the later two recommendations for benchmarking and profiling code performance:

http://docs.python.org/library/time.html

JoshAdel
  • 66,734
  • 27
  • 141
  • 140
  • 1
    Thanks! This worked great. One note for others who may be using timeit for the first time, you will need to import locally defined symbols via timeit's setup parameter. For example (if myOwnFunc was locally defined and what you wanted to time): `print timeit.timeit('myOwnFunc()', setup='from __main__ import myOwnFunc', number=1)`. Without the setup parameter, it will complain that it could not find myOwnFunc. – Landshark666 Dec 24 '12 at 04:13
6

@JoshAdel covered a lot of it, but if you just want to time the execution of an entire script, you can run it under time on a unix-like system.

kotai:~ chmullig$ cat sleep.py 
import time

print "presleep"
time.sleep(10)
print "post sleep"
kotai:~ chmullig$ python sleep.py 
presleep
post sleep
kotai:~ chmullig$ time python sleep.py 
presleep
post sleep

real    0m10.035s
user    0m0.017s
sys 0m0.016s
kotai:~ chmullig$ 
chmullig
  • 13,006
  • 5
  • 35
  • 52
4

see this: Python - time.clock() vs. time.time() - accuracy?

Community
  • 1
  • 1
anta40
  • 6,511
  • 7
  • 46
  • 73