Skip to content

How to use Profilers in Python

When you have performance problems in your Python application, you can use a Profiler to help you.

Step 1: Using cProfile

Your first option is to run your application with -m cProfile in the cli.

Let’s take an example application that is run as follows:

Code language: Bash (bash)

We can run it with a Profiler by doing the following:

python -m cProfile -o outfile
Code language: Bash (bash)

This will give you a report that shows where most of the time is spent while running your app.

Step 2: Using LineProfiler (recommended)

My preferred option, is to use the line_profiler tool to perform a more detailed scan.

Start by installing the line_profiler using pip.

pip install line_profiler
Code language: Bash (bash)

Then we can adjust our application code and add the @profile annotation right before each function you’d like to see statistics with.

@profile def fun_a(): #do something @profile def fun_b(): #do something more if __name__ == '__main__': fun_a() fun_b()
Code language: Python (python)

Now we can run the profiler using the below command:

time kernprof -l -v
Code language: Bash (bash)

See also  The Deaf Rats of Hamelin Challenge in Java
Notify of
Inline Feedbacks
View all comments
Would love your thoughts, please comment.x