関数呼び出しを記録し、コードの実行をインタラクティブなタイムラインで可視化する、低オーバーヘッドのPythonトレーサーです。
P403n1x87/austin
実行中のPythonプロセスをプロファイリングする、C製の低オーバーヘッド・計測コード不要なCPythonフレームスタックサンプラー。
- スター
- 2,215
- フォーク
- 68
- 未解決の Issue
- 10
- 最終コミット
- 9 日前
これは何?
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子プロセスを追跡し、サブインタープリターをサンプリングします。
- 04MOJOバイナリデータを出力し、FlameGraph、Speedscope、pprof形式に変換できます。
- 05実行中のプロセス内にある全スレッドのスタックをダンプするwhereモードを備えています。
- 06サードパーティ製の依存関係がない単一のCバイナリとして提供されます。
ユースケース
- コードを変更せずに、Pythonアプリケーションのパフォーマンスボトルネックを特定する。
- オーバーヘッドを最小限に抑えながら、本番環境の稼働中サービスや長時間実行するスクリプトをプロファイリングする。
- Apache mod_wsgiのワーカーなど、マルチプロセス構成のWeb環境をプロファイリングする。
- 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のワーカーなど、マルチプロセス構成のWeb環境をプロファイリングする。 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製フレームグラフ生成ツール。
Pythonコード、ネイティブ拡張、インタープリターのメモリ割り当てを追跡し、複数形式のレポートを生成するPython用メモリプロファイラーです。
Python関数の各ソース行にかかる時間を表示する、行単位のプロファイラー。
profile.proto形式のプロファイリングデータを可視化・分析するコマンドラインツール兼Webツール。
リクエストやSQLクエリ、コードブロックを記録し、遅い箇所を特定できるDjango向けのリアルタイムプロファイラー兼インスペクションUI。