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文の数 |
| 実行時間 | その関数にかかった時間 |
| 実行割合 | 全体の中でどれくらい重いか |
未使用関数を確認する
未使用関数検出では、呼び出されていない関数を一覧で確認できます。
古い実装や、使わなくなった補助関数を見つけるときに役立ちます。

コメント