コード構造ビューの使い方

競プロデバッグツール

COMPETITIVE DEBUG STUDIO

コード構造ビューの使い方

コード構造ビューは、Pythonコードの関数構造を可視化する機能です。 関数同士の呼び出し関係、重い関数、実行の流れ、未使用関数を確認できます。

競プロのコードが長くなってきたときに、 「solve() から何が呼ばれているのか」 「どの関数が重いのか」 「使っていない関数が残っていないか」 を確認しやすくします。

コード構造ビューを開く

コード構造ビューでは、通常の実行画面とは別に、 広いキャンバス上で関数のつながりを確認できます。

コード構造ビュー全体画面

関数依存マップ、関数ヒートマップ、関数アニメーションを切り替えながら、 コード全体の流れを確認できます。

関数依存マップで呼び出し関係を見る

関数依存マップでは、関数同士の呼び出し関係をノードと矢印で表示します。

関数依存マップ画面

例えば、solve() から read_input()、bfs()、output() が呼ばれている場合、 その流れをマップ上で確認できます。

関数が増えてコード全体が追いにくくなったときは、まず関数依存マップを見ると流れを把握しやすくなります。

関数ヒートマップで重い関数を見る

関数ヒートマップでは、実行結果をもとに、重い関数を色で表示します。 処理時間が大きい関数ほど目立つため、TLEの原因を探しやすくなります。

関数ヒートマップ画面

右側のメトリクスでは、実行時間、実行割合、行実行回数などを確認できます。

関数アニメーションで実行の流れを見る

関数アニメーションでは、実行時にどの関数が呼ばれたかを順番に再生できます。

関数アニメーション画面

solve() から read_input()、bfs()、output() へ進む流れを、 関数単位で追うことができます。

  • 再生
  • 停止
  • 前へ
  • 次へ
  • 速度変更

関数依存ハイライトで影響範囲を見る

関数をクリックすると、その関数の呼び出し元と呼び出し先だけを強調表示できます。 関係のない関数は薄く表示されます。

関数依存ハイライト画面

例えば bfs() を選択すると、bfs() を呼んでいる関数と、 bfs() が呼んでいる関数だけを確認できます。

コードジャンプで該当関数へ移動する

マップ上の関数をクリックすると、user.py の該当関数へジャンプできます。

グラフで構造を確認しながら、気になった関数をすぐにコード上で確認できます。

関数メトリクスを見る

関数を選択すると、右側に関数メトリクスが表示されます。

関数メトリクス画面
項目 確認できること
行数 関数の大きさ
if数 条件分岐の多さ
for数 for文の数
while数 while文の数
実行時間 その関数にかかった時間
実行割合 全体の中でどれくらい重いか

未使用関数を確認する

未使用関数検出では、呼び出されていない関数を一覧で確認できます。

未使用関数検出画面

古い実装や、使わなくなった補助関数を見つけるときに役立ちます。

POINT

コード構造ビューは、コード全体の地図です。

まず関数依存マップで流れを確認し、 次に関数ヒートマップで重い場所を探し、 必要に応じてコードジャンプで該当関数を修正する。 この流れで使うと、コード全体を把握しやすくなります。

次に読むページ

コメント

タイトルとURLをコピーしました