Austin is a Python frame stack sampler for CPython written in pure C. Samples are collected by reading the CPython interpreter virtual memory space in order to retrieve information about the currently running threads along with the stack of the frames that are being executed. Hence, one can use Austin to easily make powerful statistical profilers that have minimal impact on the target application and that don't require any instrumentation.
The key features of Austin are:
Fast and lightweight;
Time and memory profiling;
Built-in support for multi-process applications (e.g. mod_wsgi).
The simplest way to turn Austin into a full-fledged profiler is to combine it with FlameGraph. However, Austin's simple output format can be piped into any other external or custom tool for further processing. Look, for instance, at the following Python TUI