How do I measure elapsed time in Python?

measure, performance, python, timeit

Solution

Use `time.time()` to measure the elapsed wall-clock time between two points:

import time

start = time.time()
print("hello")
end = time.time()
print(end - start)

This gives the execution time in seconds.

Another option since Python 3.3 might be to use `perf_counter` or `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 `perf_counter()` or `process_time()` instead, depending on your requirements, to have a well defined behaviour.

Problem

I want to measure the time it took to execute a function. I couldn't get `timeit` to work: ``` import timeit start = timeit.timeit() print("hello") end = timeit.timeit() print(end - start) ```

Original source

Related problems