How to measure elapsed time in Python?
If you just want to measure the elapsed wall-clock time between two points, you could use
import timestart = time.time()print("hello")end = time.time()print(end - start)
This gives the execution time in seconds.
Another option since 3.3 might be to use
process_time, depending on your requirements. Before 3.3 it was recommended to use
time.clock (thanks Amber). However, it is currently deprecated:
On Unix, return the current processor time as a floating point number expressed in seconds. The precision, and in fact the very definition of the meaning of “processor time”, depends on that of the C function of the same name.
On Windows, this function returns wall-clock seconds elapsed since the first call to this function, as a floating point number, based on the Win32 function
QueryPerformanceCounter(). The resolution is typically better than one microsecond.
Deprecated since version 3.3: The behaviour of this function depends on the platform: use
process_time()instead, depending on your requirements, to have a well defined behaviour.
timeit.default_timer instead of
timeit.timeit. The former provides the best clock available on your platform and version of Python automatically:
from timeit import default_timer as timerstart = timer()# ...end = timer()print(end - start) # Time in seconds, e.g. 5.38091952400282
timeit.default_timer is assigned to time.time() or time.clock() depending on OS. On Python 3.3+ default_timer is time.perf_counter() on all platforms. See Python - time.clock() vs. time.time() - accuracy?
Python 3 only:
Since time.clock() is deprecated as of Python 3.3, you will want to use
time.perf_counter() for system-wide timing, or
time.process_time() for process-wide timing, just the way you used to use
import timet = time.process_time()#do some stuffelapsed_time = time.process_time() - t
The new function
process_time will not include time elapsed during sleep.