Низконакладной трассировщик Python, который записывает вызовы функций и показывает выполнение кода на интерактивной временной шкале.
P403n1x87/austin
Низконагрузочный семплер стеков вызовов для CPython на C, не требующий инструментирования и предназначенный для профилирования запущенных Python-процессов.
- Звёзды
- 2,215
- Форки
- 68
- Открытые issues
- 10
- Последний коммит
- 10 дней назад
Что это?
Austin собирает стеки вызовов запущенных процессов CPython, считывая память интерпретатора извне. Изменять код или инструментировать его не нужно, поэтому Austin можно подключить к работающему приложению, в том числе в production, чтобы выяснить, на что тратятся время и память.
Результат сохраняется в компактном бинарном формате MOJO, который можно преобразовать в свёрнутые стеки для FlameGraph, JSON для Speedscope или формат Google pprof. Austin также работает с многопроцессными приложениями, например mod_wsgi, умеет собирать состояние сборщика мусора и поддерживает режим 'where', выводящий текущие стеки всех потоков процесса. Austin распространяется как единый бинарный файл на C и поддерживает Python с 3.9 по 3.14 на Linux, Windows и macOS.
Ключевые возможности
- 01Собирает стеки CPython, считывая память интерпретатора, без инструментирования кода.
- 02Поддерживает профилирование времени, памяти и комбинированный режим full.
- 03Отслеживает дочерние процессы и собирает данные с субинтерпретаторов.
- 04Выводит бинарные данные MOJO, которые можно преобразовать в форматы FlameGraph, Speedscope и pprof.
- 05Включает режим where, который выводит стеки всех потоков запущенного процесса.
- 06Поставляется как единый бинарный файл на C без сторонних зависимостей.
Сценарии использования
- Поиск узких мест производительности в Python-приложении без изменения его кода.
- Профилирование работающего production-сервиса или длительно выполняющегося скрипта с минимальными накладными расходами.
- Профилирование многопроцессных веб-развёртываний, например воркеров Apache mod_wsgi.
- Построение flame graph для Python-программ, чтобы сравнить, куда уходит время CPU или память.
Быстрый старт
- 1
Установите Austin из PyPI с помощью pip
pip install austin-dist - 2
Запустите austin с командой или параметром -p PID, чтобы сэмплировать процесс Python; список параметров смотрите в справке по использованию
Что важно знать
- Поддерживает профилирование только процессов CPython.
- Распространяется по лицензии GPL-3.0 — лицензии с авторским левом, которая может ограничивать способы повторного использования кода.
Темы
Частые вопросы
- Что такое austin?
- Низконагрузочный семплер стеков вызовов для CPython на C, не требующий инструментирования и предназначенный для профилирования запущенных Python-процессов. Austin собирает стеки вызовов запущенных процессов CPython, считывая память интерпретатора извне. Изменять код или инструментировать его не нужно, поэтому Austin можно подключить к работающему приложению, в том числе в production, чтобы выяснить, на что тратятся время и память.
- austin можно использовать бесплатно? Какая у него лицензия?
- austin распространяется с открытым исходным кодом под лицензией GPL-3.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- austin всё ещё поддерживается?
- Активно поддерживается. Последний коммит в austin — 28 окт. 2026 г..
- Для чего можно использовать austin?
- Поиск узких мест производительности в Python-приложении без изменения его кода. Профилирование работающего production-сервиса или длительно выполняющегося скрипта с минимальными накладными расходами. Профилирование многопроцессных веб-развёртываний, например воркеров Apache mod_wsgi. Построение flame graph для Python-программ, чтобы сравнить, куда уходит время CPU или память.
- Как установить austin?
- Установите Austin из PyPI с помощью pip: pip install austin-dist Запустите austin с командой или параметром -p PID, чтобы сэмплировать процесс Python; список параметров смотрите в справке по использованию
- Где скачать austin?
- Исходный код и инструкции по установке — на GitHub: https://github.com/P403n1x87/austin
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Генератор flamegraph на Rust для профилирования проектов Cargo и любых бинарных файлов с помощью perf, xctrace или dtrace/blondie — без Perl.
Профилировщик памяти для Python: отслеживает выделения памяти в Python-коде, нативных расширениях и интерпретаторе и формирует отчёты нескольких типов.
Построчный профилировщик Python, который показывает, сколько времени занимает выполнение каждой строки декорированной функции.
Инструмент командной строки и веб-интерфейс для визуализации и анализа данных профилирования в формате profile.proto.
Профайлер и интерфейс для анализа Django, которые записывают запросы, SQL-запросы и блоки кода, помогая находить узкие места.