DUICUO

オープンソースの視覚化ツールを使用して Python コードを理解します。

VizTracer ツールを使用すると、Python コードを視覚化してトレースできるため、Python の動作をより深く理解できます。

Pythonプロジェクトが大規模かつ複雑になるにつれて、理解はますます困難になります。プロジェクト全体を自分で書いたとしても、その動作を完全に理解することは不可能です。より深く理解するためには、コードのデバッグと分析が不可欠になります。

VizTracerは、Pythonコードの実行をトレースして視覚化することで、コードを理解するのに役立つツールです。ソースコードを変更することなく、VizTracerは関数のエントリポイントと終了ポイント、関数のパラメータと戻り値、そして任意の変数を記録し、直感的なGoogle ChromeフロントエンドインターフェースであるTrace-Viewerでデータを表示します。

以下はモンテカルロツリー検索を実行する例です。

モンテカルロ木探索の視覚化

各関数はタイムライン上にスタックとして記録・可視化されるため、プログラム実行中に何が起こっているかを確認できます。ズームインすることで、任意の時点の詳細情報を表示できます。

VizTracerの可視化を拡大

VizTracerは関数のパラメータと戻り値を自動的に記録することもできます。関数のエントリをクリックすると、詳細情報が表示されます。

VizTracerの詳細の表示

あるいは、全く新しいシグナルを作成し、それを使って変数を記録することもできます。例えば、以下は勾配降下法を実行する際のコスト値を示しています。

VizTracer勾配降下法

他の複雑なツールと比べて、VizTracerは非常に使いやすく、依存関係もありません。pipでインストールできます。

  1. pip install viztracer

次のように入力してプログラムをトレースすることもできます ( <your_script.py>はスクリプトの名前です)。

  1. viztracer < your_script . py >

VizTracer は作業ディレクトリに HTML レポートを生成し、Chrome ブラウザで開くことができます。

VizTracerには、フィルターなどの高度な機能も備わっています。フィルターを使用すると、追跡したくない関数を除外して、より明確なレポートを作成できます。例えば、ファイル内の関数のみをレポートに含めるには、以下の手順が必要です。

  1. viztracer include_files ./ -- run < your_script . py >

関数のパラメータと戻り値を記録します。

  1. viztracer -- log_function_args -- log_return_value < your_script . py >

指定された正規表現に一致する変数を記録します。

  1. # log variables starts with a
  2. viztracer -- log_var a .* -- run & lt ; your_script . py & gt ;

ソース コードに小さな変更を加えることで、値やオブジェクトをログに記録するカスタム イベントなどの追加機能を取得できます。

VizTracerには、VizTracerのログファイルをデバッグできる仮想デバッガー(vdb)も含まれています。vdbを使えば実行中のコードをデバッグでき(pdbに非常に似ています)、コードフローを理解できます。さらに、発生したすべての事象を把握できるため、時間の巻き戻しもサポートされています。

一部のプロトタイプとは異なり、VizTracer はコアを純粋な C で実装しているため、オーバーヘッドが大幅に削減され、cProfile と同等のレベルになります。

VizTracerはオープンソースで、Apache 2.0ライセンスに基づいてリリースされており、すべての一般的なオペレーティングシステムプラットフォーム(Linux、macOS、Windows)をサポートしています。機能の詳細とソースコードはGitHubでご覧いただけます。