Pyflame: A Ptracing Profiler For Python

Pyflame is a unique profiling tool that generates flame graphs for Python. Pyflame is the only Python profiler based on the Linux ptrace(2) system call. This allows it to 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 is written in C++, with attention to speed and performance. Pyflame usually introduces less overhead than the builtin profile (or cProfile) modules, and also emits richer profiling data. The profiling overhead is low enough that you can use it to profile live processes in production.

Websites

Blog Posts

Some existing articles and blog posts on Pyflame include:

If you write a new post about Pyflame, please let us know and we’ll add it here!