March 1st, 2024
Austin is a Python frame stack sampler for CPython written in pure C. Samples are collected by reading the CPython interpreter virtual memory space 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.
Note: Austin will generate extremely huge output files if you are running it against a 5 million LOC Django codebase like I am.
austin ./manage.py runserver > /tmp/austin
Throw the /tmp/austin
file in: https://www.speedscope.app/
austin -p $PROCESS_NUMBER > /tmp/austin