Repolode
P403n1x87

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. 1

    Установите Austin из PyPI с помощью pip

    pip install austin-dist
  2. 2

    Запустите austin с командой или параметром -p PID, чтобы сэмплировать процесс Python; список параметров смотрите в справке по использованию

Что важно знать

  • Поддерживает профилирование только процессов CPython.
  • Распространяется по лицензии GPL-3.0 — лицензии с авторским левом, которая может ограничивать способы повторного использования кода.

Темы

#python#profiling#performance#debugging#flamegraph#sampling-profiler#debugging-tools

Частые вопросы

Что такое 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 обновляется ежедневно.

Похожие проекты

Профилировщик памяти для Python: отслеживает выделения памяти в Python-коде, нативных расширениях и интерпретаторе и формирует отчёты нескольких типов.

15,4 тыс.+14 за неделю486PythonApache-2.0Активно поддерживаетсяОбновлён 4 дня назад