The timeit module enables you to measure the execution time of python functions. This proves beneficial when looking to optimize your python code. Especially, when determining the best way to solve a problem. During this tutorial you will learn about the timeit python module and how to use it to time your python functions.

What is the timeit python module

The timeit python module measures the execution time of python functions. Timeit is more precise than finding the difference of the start time and end time of a function. In addition to being more precise, timeit executes the snippet multiple times providing a more accurate depiction of the average execution time. In order to get started with the timeit python module, you should install ipython using pip.

Developing functions to test

Prior to using timeit, we must develop a function to test. Below you can find simple script with two functions, both of which return the age associated with the name of the person found in the list. One uses a for loop to find the index of the name and uses the index to find the age. The other zips the two list together, finds the name, and returns the associated age.

from timeit import timeit

names = ['Adam', 'Brandon', 'Carlie', 'David', 'Emily', 'Frank', 'Greg', 'Heather', 'Isaac', 'Jacob']
ages = [43, 35, 24, 65, 42, 30, 28, 19, 21, 39]

def find_age(search_name):
    for i, person in enumerate(names):
        if search_name == person:
            return ages[i]

def find_age_zip(search_name):
    for name, age in zip(names, ages):
        if name == search_name:
            return age

Using ipython to time our functions

Now that we have python functions to test, we can place them in a new python file called test.py. In our terminal window, we can start ipython notebook by simply typing “ipython.” This will start an ipython shell. In our shell we can type the following:

%run test.py
%timeit find_age('Adam')
%timeit find_age_zip('Adam')

Conclusion

The timeit python module is a great tool to test the execution time of functions and other code snippets. With the help of ipython, the timeit module is very intuitive.

If you have further questions regarding timeit or execution time, don’t hesitate to contact us.

About the author