Repolode
P403n1x87

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

    pipを使ってPyPIからAustinをインストールします

    pip install austin-dist
  2. 2

    コマンドまたは「-p PID」オプションを指定してaustinを実行し、Pythonプロセスをサンプリングします。オプションについては使用方法のヘルプを参照してください

使う前に知っておきたいこと

  • プロファイルを取得できるのはCPythonプロセスのみです。
  • コピーレフトライセンスであるGPL-3.0の下でライセンスされているため、コードの再利用方法が制限される場合があります。

トピック

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

よくある質問

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 の数値は毎日更新されます。

関連プロジェクト

Pythonコード、ネイティブ拡張、インタープリターのメモリ割り当てを追跡し、複数形式のレポートを生成するPython用メモリプロファイラーです。

開発ツール#python#memory-profiler#memory-leak
1.5万+12 今週486PythonApache-2.0活発にメンテナンス更新 3 日前