함수 호출을 기록하고 코드 실행을 대화형 타임라인으로 시각화하는 오버헤드가 낮은 Python 트레이서입니다.
P403n1x87/austin
실행 중인 Python 프로세스를 프로파일링하는, 오버헤드가 낮고 별도 계측이 필요 없는 C 기반 CPython 프레임 스택 샘플러입니다.
- 스타
- 2,215
- 포크
- 68
- 열린 이슈
- 10
- 마지막 커밋
- 10일 전
어떤 프로젝트인가요?
Austin은 프로세스 외부에서 인터프리터 메모리를 읽어 실행 중인 CPython 프로세스의 호출 스택을 샘플링합니다. 코드 변경이나 계측이 필요하지 않아 프로덕션을 포함한 실행 중인 애플리케이션에 연결해 시간이나 메모리를 어디에 쓰는지 확인할 수 있습니다.
출력은 MOJO라는 간결한 바이너리 형식이며, 이를 FlameGraph용 접힌 스택, Speedscope JSON 또는 Google pprof 형식으로 변환할 수 있습니다. mod_wsgi 같은 멀티프로세스 애플리케이션에서도 동작하고, 가비지 컬렉터 상태를 샘플링할 수 있으며, 프로세스의 모든 스레드에서 현재 스택을 덤프하는 'where' 모드도 제공합니다. Austin은 단일 C 바이너리로 배포되며 Linux, Windows, macOS에서 Python 3.9~3.14를 지원합니다.
핵심 기능
- 01인터프리터 메모리를 읽어 CPython 스택을 샘플링하며 코드 계측이 필요하지 않습니다.
- 02시간 프로파일링, 메모리 프로파일링, 두 가지를 결합한 full 모드를 지원합니다.
- 03자식 프로세스를 추적하고 서브인터프리터를 샘플링합니다.
- 04FlameGraph, Speedscope, pprof 형식으로 변환할 수 있는 MOJO 바이너리 데이터를 출력합니다.
- 05실행 중인 프로세스의 모든 스레드 스택을 덤프하는 where 모드를 제공합니다.
- 06타사 의존성 없이 단일 C 바이너리로 제공됩니다.
활용 사례
- 코드를 수정하지 않고 Python 애플리케이션의 성능 병목을 찾습니다.
- 오버헤드를 최소화하면서 실행 중인 프로덕션 서비스나 장시간 실행되는 스크립트를 프로파일링합니다.
- Apache mod_wsgi 워커 같은 멀티프로세스 웹 배포 환경을 프로파일링합니다.
- Python 프로그램의 플레임 그래프를 생성해 CPU 시간이나 메모리를 어디에 쓰는지 비교합니다.
빠른 시작
- 1
pip를 사용해 PyPI에서 Austin을 설치합니다
pip install austin-dist - 2
명령 또는 「-p PID」 옵션을 지정해 austin을 실행하여 Python 프로세스를 샘플링합니다. 옵션은 사용법 도움말을 참조하세요
사용 전 알아둘 점
- CPython 프로세스만 프로파일링할 수 있습니다.
- 카피레프트 라이선스인 GPL-3.0에 따라 제공되므로 코드를 재사용하는 방법이 제한될 수 있습니다.
토픽
자주 묻는 질문
- austin은(는) 무엇인가요?
- 실행 중인 Python 프로세스를 프로파일링하는, 오버헤드가 낮고 별도 계측이 필요 없는 C 기반 CPython 프레임 스택 샘플러입니다. Austin은 프로세스 외부에서 인터프리터 메모리를 읽어 실행 중인 CPython 프로세스의 호출 스택을 샘플링합니다. 코드 변경이나 계측이 필요하지 않아 프로덕션을 포함한 실행 중인 애플리케이션에 연결해 시간이나 메모리를 어디에 쓰는지 확인할 수 있습니다.
- austin은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- austin은(는) GPL-3.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- austin은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. austin의 마지막 커밋은 2026년 10월 28일입니다.
- austin은(는) 어디에 사용할 수 있나요?
- 코드를 수정하지 않고 Python 애플리케이션의 성능 병목을 찾습니다. 오버헤드를 최소화하면서 실행 중인 프로덕션 서비스나 장시간 실행되는 스크립트를 프로파일링합니다. Apache mod_wsgi 워커 같은 멀티프로세스 웹 배포 환경을 프로파일링합니다. Python 프로그램의 플레임 그래프를 생성해 CPU 시간이나 메모리를 어디에 쓰는지 비교합니다.
- austin는 어떻게 설치하나요?
- pip를 사용해 PyPI에서 Austin을 설치합니다: pip install austin-dist 명령 또는 「-p PID」 옵션을 지정해 austin을 실행하여 Python 프로세스를 샘플링합니다. 옵션은 사용법 도움말을 참조하세요
- austin은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/P403n1x87/austin
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Perl 없이 perf, xctrace 또는 dtrace/blondie로 Cargo 프로젝트나 바이너리를 프로파일링하는 Rust 기반 flamegraph 생성기입니다.
Python 코드, 네이티브 확장 모듈, 인터프리터의 메모리 할당을 추적하고 여러 유형의 리포트를 생성하는 메모리 프로파일러입니다.
Python 함수의 각 소스 코드 줄이 실행되는 데 걸리는 시간을 보여주는 줄 단위 프로파일러입니다.
profile.proto 형식의 프로파일링 데이터를 시각화하고 분석하는 CLI 및 웹 도구입니다.
느린 구간을 찾도록 Django 요청, SQL 쿼리, 코드 블록을 기록하는 실시간 프로파일러 및 검사 UI입니다.