Need help with pyflame?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

2.9K Stars 225 Forks Apache License 2.0 299 Commits 35 Opened issues


🔥 Pyflame: A Ptracing Profiler For Python. This project is deprecated and not maintained.

Services available


Need anything else?

Contributors list

Pyflame: A Ptracing Profiler For Python

Build Status Docs Status COPR Status

(This project is deprecated and not maintained.)

Pyflame is a high performance profiling tool that generates flame graphs for Python. Pyflame is implemented in C++, and uses the Linux ptrace(2) system call to collect profiling information. It can take snapshots of the Python call stack without explicit instrumentation, meaning you can profile a program without modifying its source code. Pyflame is capable of profiling embedded Python interpreters like uWSGI. It fully supports profiling multi-threaded Python programs.

Pyflame usually introduces significantly less overhead than the builtin

) modules, and emits richer profiling data. The profiling overhead is low enough that you can use it to profile live processes in production.

Full Documentation:



Building And Installing

For Debian/Ubuntu, install the following:

# Install build dependencies on Debian or Ubuntu.
sudo apt-get install autoconf automake autotools-dev g++ pkg-config python-dev python3-dev libtool make

Once you have the build dependencies installed:



command will produce an executable at
that you can run and use.

Optionally, if you have

installed, you can test the executable you produced using
make check

Using Pyflame

The full documentation for using Pyflame is here. But here's a quick guide:

# Attach to PID 12345 and profile it for 1 second
pyflame -p 12345

Attach to PID 768 and profile it for 5 seconds, sampling every 0.01 seconds

pyflame -s 5 -r 0.01 -p 768

Run py.test against tests/, emitting sample data to prof.txt

pyflame -o prof.txt -t py.test tests/

In all of these cases you will get flame graph data on stdout (or to a file if you used

). This data is in the format expected by
, which you can find here.


The full FAQ is here.

What's The Deal With (idle) Time?

Full answer here. tl;dr: use the

flag to suppress (idle) output.

What About These Ptrace Errors?

See here.

How Do I Profile Threaded Applications?

Use the


Is There A Way To Just Dump Stack Traces?

Yes, use the


We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.