実行中のPythonプロセスをプロファイリングする、C製の低オーバーヘッド・計測コード不要なCPythonフレームスタックサンプラー。
gaogaotiantian/viztracer
関数呼び出しを記録し、コードの実行をインタラクティブなタイムラインで可視化する、低オーバーヘッドのPythonトレーサーです。
- スター
- 7,774
- フォーク
- 480
- 未解決の Issue
- 33
- 最終コミット
- 先月
これは何?
VizTracerはPythonコードの実行をトレースし、Perfettoをベースにしたブラウザービューアーで結果をインタラクティブなタイムラインとして表示します。各関数の開始と終了は、ソースコードとともにタイムラインに記録されるため、予期しない制御フローのデバッグや、処理時間のかかっている箇所の特定に役立ちます。
ほとんどの機能はソースコードを変更せずに使えます。viztracerコマンド経由でスクリプトを実行するか、VizTracerのコンテキストマネージャーで計測対象の範囲を囲み、生成されたresult.jsonをvizviewerで開くだけです。Jupyterのセルマジック、PyTorchのネイティブイベントとGPUイベントのロギング、実行中プロセスへのリモートアタッチにも対応しています。
threading、multiprocessing、subprocess、os.fork、concurrent.futures、asyncioに対応しており、最小実行時間、スタック深度、対象ファイルの包含・除外リストなどのフィルターでトレースサイズを抑えられます。Linux、macOS、Windowsで動作し、pipでインストールできます。
主な機能
- 01各関数の開始と終了を、ソースコードとともにタイムラインに記録します。
- 02ソースコードを変更せずに、スクリプト、モジュール、コンソールスクリプトを実行できます。
- 03threading、multiprocessing、subprocess、asyncio、PyTorchに対応しています。
- 04最小実行時間、スタック深度、対象ファイルの包含・除外を指定するフィルターを備えています。
- 05実行中のリモートPythonプロセスにアタッチできます。
- 06Linux、macOS、Windowsで動作します。
ユースケース
- マルチスレッドまたは非同期Pythonプログラムで、予期しない制御フローをデバッグする。
- 遅いスクリプトで、実行時間の大半を占める関数呼び出しを特定する。
- GPUイベントを含め、PyTorchモデルの実行を調べる。
- 長時間稼働するプロセスにアタッチして、その挙動を調査する。
クイックスタート
- 1
pipでVizTracerをインストールする
pip install viztracer - 2
コマンドラインからスクリプトをトレースする
viztracer my_script.py arg1 arg2 - 3
生成されたresult.jsonをビューアーで開く
vizviewer result.json
収録されている特集
トピック
よくある質問
- viztracer とは?
- 関数呼び出しを記録し、コードの実行をインタラクティブなタイムラインで可視化する、低オーバーヘッドのPythonトレーサーです。 VizTracerはPythonコードの実行をトレースし、Perfettoをベースにしたブラウザービューアーで結果をインタラクティブなタイムラインとして表示します。各関数の開始と終了は、ソースコードとともにタイムラインに記録されるため、予期しない制御フローのデバッグや、処理時間のかかっている箇所の特定に役立ちます。
- viztracer は無料で使えますか?ライセンスは?
- viztracer は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- viztracer は今もメンテナンスされていますか?
- 半年以内に更新あり。viztracer の最終コミットは 2026年9月26日 です。
- viztracer は何に使えますか?
- マルチスレッドまたは非同期Pythonプログラムで、予期しない制御フローをデバッグする。 遅いスクリプトで、実行時間の大半を占める関数呼び出しを特定する。 GPUイベントを含め、PyTorchモデルの実行を調べる。 長時間稼働するプロセスにアタッチして、その挙動を調査する。
- viztracer のインストール方法は?
- pipでVizTracerをインストールする: pip install viztracer コマンドラインからスクリプトをトレースする: viztracer my_script.py arg1 arg2 生成されたresult.jsonをビューアーで開く: vizviewer result.json
- viztracer はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/gaogaotiantian/viztracer
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
profile.proto形式のプロファイリングデータを可視化・分析するコマンドラインツール兼Webツール。
Perlを使わず、perf、xctrace、dtrace/blondieでCargoプロジェクトや任意のバイナリをプロファイルできるRust製フレームグラフ生成ツール。
Intel Processor Traceでプロセス内のすべての関数呼び出しを記録し、インタラクティブなタイムラインに表示するLinuxプロファイラーです。
Pythonコード、ネイティブ拡張、インタープリターのメモリ割り当てを追跡し、複数形式のレポートを生成するPython用メモリプロファイラーです。
Python関数の各ソース行にかかる時間を表示する、行単位のプロファイラー。