プロファイラーのスナップショットを読む
プロファイラー ツールウィンドウ () では、収集されたデータが フレームグラフ、 呼び出しツリー、 メソッドリスト、 統計、 呼び出しグラフ の複数のタブに表示されます。
スナップショットを移動する
特定の方法に集中しながら、タブ間を移動できます。 必要なメソッドを右クリックして、それを開く別のビューを選択します。

フレームグラフ、 呼び出しツリー、 メソッドリスト タブのどのメソッドでも、 マージされた呼び出し先ツリーと バックトレースツリーを開くことができます。 メソッドを右クリックし、それぞれ Method Merged Callees または Method Back Traces を選択します。
スレッド
プロファイラー ツールウィンドウのタブ内のプロファイリングデータは、スレッドごとにグループ化されています。 プロセス全体 (All threads merged) のマージされたデータを表示するか、詳細な調査のために特定のスレッドを選択するかを選択できます。
スレッドを表示
デフォルトでは、スレッドのリストは非表示になっており、すべてのスレッドを合わせたデータが表示されます。
特定のスレッドを選択するか、スレッドのリストを確認するには、左側のツールバーの スレッド ビューを表示 をクリックしてください。

スレッドは プロファイラー ツールウィンドウの左側に一覧表示され、収集されたサンプルの数でソートされています。 リストの一番上で最もビジーなスレッドを見つけることができます。
フレームグラフ
フレームグラフは、幅順に並べられたコールスタックのフレームを表す四角形を使用して、アプリケーションのコールツリーを視覚化します。

呼び出しの詳細を取得する
ブロックの上にマウスを置くと、フレームの詳細を含むツールチップが表示されます。 ツールチップには、スナップショット全体とフレームの直接の親における時間の割合が表示されます。
グラフをズームする
フレームグラフのツールバーまたはスクロールホイールの
ボタンと
ボタンを使用して、グラフをズームします。
特定の方法に焦点を合わせるには、グラフ上の対応するブロックをダブルクリックします。
グラフの元のサイズに戻すには、ツールバーの 1:1 をクリックします。
グラフを検索する
グラフ上で特定のメソッドを見つけたい場合は、その名前の入力を開始するか、
をクリックして検索バーに名前を入力します。
グラフは、検索リクエストに一致するメソッド名を持つすべてのブロックをハイライトします。
および
を使用すると、検索結果間を高速に移動できます。 ツールバーのボタンを使用すると、グラフ全体または特定のサブツリーを検索し、何かが見つかるとすぐに結果に移動することもできます。
グラフをキャプチャーする
スナップショット内の他のデータとは別にグラフをキャプチャーしてエクスポートできます。
をクリックして Copy to Clipboard を選択するか、 保存 をクリックしてグラフを .png 形式のイメージとしてエクスポートします。
フレームグラフでスナップショット間の違いを可視化できます。
ベースラインと比較する
2 つのスナップショットを開きます。 スナップショットを開くには、プロファイラーを 2 回実行するか、 に移動してここでスナップショットを選択します。
Compare With Baseline… ボタンをクリックして、比較するスナップショットを選択します。

比較結果は別の差分タブで開き、フレームグラフを結合して違いを赤と緑で表示します。
フレームの一部が緑色である場合は、このプロファイラーの実行中に対応するメソッドが高速化されたことを意味します。 赤い色は、対応する方法が遅くなったことを意味します。
呼び出しツリー
呼び出しツリー タブは、サンプリングされたデータをツリーのような構造に編成します。

各メソッドについて、タブには次の情報が表示されます:
合計実行時間または親の実行時間を共有します
合計実行時間
再帰呼び出し
デフォルトでは、パーセンテージは合計実行時間に比例します。 親フレームを基準にして数値を表示するように選択できます。
合計と親の間でパーセンテージを切り替える
をクリックし、 Show Percent of Total Time または Show Percent of Parent を選択します。
仮に: 特定の方法に焦点を当てる
PyCharm では、 呼び出しツリー 内の特定のノードやサブツリーを調査することができます。特定のメソッドを除外することも、その逆に、現時点で関心のあるノードのみに焦点を当てることもできます。
呼び出しツリー タブで必要なノードを右クリックし、次のオプションのいずれかを選択して、専用のタブで結果を開きます。
Focus On Subtree: 選択したメソッド呼び出しのみを表示します。 親メソッドのサンプルカウンターには、選択したサブツリーで費やされた時間のみが表示されます。
Focus On Call: 選択したメソッドとそれを呼び出すメソッドを表示します。 このオプションを有効にすると、すべてのフレームに、選択したメソッドで費やされた時間のみが表示されます。
Exclude Subtree: 選択したメソッド呼び出しを無視します。
Exclude Call: 選択したメソッドへのすべての呼び出しを無視します。
メソッドリスト
メソッドリスト は、プロファイルデータ内のすべてのメソッドを収集し、累積サンプル時間でソートします。 このリストのすべてのアイテムには、いくつかのビューがあります。
Back Traces は、呼び出し元の階層を示しています。 このビューを使用して、選択したメソッドを呼び出すメソッドをトレースします。
Merged Callees は、呼び出し階層の下位にあるメソッドを要約した呼び出しツリーです。
Callee List は、呼び出し階層の下位にあるメソッドを要約したメソッドリストです。
統計
統計 タブでは、プロファイリングの結果をインスペクションできます。

項目 | 説明 |
|---|---|
名前 | 関数の名前。 |
呼び出し回数 | 選択した関数の呼び出し数。 |
時間 | 選択された関数の実行時間と、この関数によって呼び出された関数によるすべての時間。 このコールで費やされた時間のパーセンテージは、括弧内のすべてのコールで費やされた時間に関連しています。 |
自身時間 | 選択した関数の実行時間を指定します。 この呼び出しで費やされた時間の割合を括弧で表したものです。 |
ソースコードに移動
特定の関数のソースコードに移動するには、 統計 タブの対応するエントリを右クリックし、コンテキストメニューから を選択します。
関数のソースコードがエディターに表示されます。
呼び出しグラフ
呼び出しグラフ 上の色分けに注目してください。赤色でマークされた関数は処理時間が長く、最も速い関数は緑色です。

ツールバーボタンを使用して、グラフを操作します。
項目
説明
このアイコンをクリックすると、ダイアグラムの縮尺が拡大されます。 あるいは、 NumPad+ を押します。
このアイコンをクリックすると、ダイアグラムの縮尺が縮小されます。 あるいは、 NumPad- を押します。
このアイコンをクリックすると、ダイアグラムの実際のサイズに戻ります。
このアイコンをクリックして、内容を現在のダイアグラムのサイズに合わせます。
このアイコンをクリックして、ダイアグラムのコンテキストメニューの レイアウト ノードから選択した現在のレイアウトを適用します。
このアイコンをクリックして、ダイアグラムをウィンドウの端に合わせて拡大縮小します。
このアイコンをクリックして、ダイアグラムをクリップボードにコピーします。
このアイコンをクリックしてからマウスでダイアグラムの任意の領域を選択すると、選択範囲がクリップボードにコピーされます。
このアイコンをクリックすると、現在のダイアグラムが PNG 形式でエクスポートされます。
このアイコンをクリックしてダイアグラムを印刷します。