PyCharm 2024.3 ヘルプ

プロファイラーのスナップショットを読む

プロファイラーツールウィンドウ ( 表示 | ツールウィンドウ | プロファイラー ) では、収集されたデータがフレームグラフ呼び出しツリーメソッドリスト統計呼び出しグラフの複数のタブに表示されます。

スナップショットを移動する

特定の方法に集中しながら、タブ間を移動できます。必要なメソッドを右クリックして、それを開く別のビューを選択します。

Jumping between tabs in the Profiler tool window

フレームグラフ呼び出しツリーメソッドリストタブのどのメソッドでも、マージされた呼び出し先ツリーとバックトレースツリーを開くことができます。メソッドを右クリックし、それぞれメソッドのマージされた呼び出し先またはメソッドのバックトレースを選択します。

スレッド

プロファイラーツールウィンドウのタブ内のプロファイリングデータは、スレッドごとにグループ化されています。プロセス全体 ( 全スレッドマージ済み ) のマージされたデータを表示するか、詳細な調査のために特定のスレッドを選択するかを選択できます。

スレッドを表示

デフォルトでは、スレッドのリストは非表示になっており、すべてのスレッドを合わせたデータが表示されます。

  • 特定のスレッドを選択したり、スレッドのリストを確認したりするには、左側のツールバーのスレッドビューを表示をクリックします。

    Open the Threads panel in the Profiler tool window

スレッドはプロファイラーツールウィンドウの左側に一覧表示され、収集されたサンプルの数でソートされています。リストの一番上で最もビジーなスレッドを見つけることができます。

フレームグラフ

フレームグラフは、幅順に並べられたコールスタックのフレームを表す四角形を使用して、アプリケーションのコールツリーを視覚化します。

An example of the flame graph

呼び出しの詳細を取得する

  • ブロックの上にマウスを置くと、フレームの詳細を含むツールチップが表示されます。ツールチップには、スナップショット全体とフレームの直接の親における時間の割合が表示されます。

グラフをズームする

  • フレームグラフのツールバーまたはスクロールホイールの the Zoom in button ボタンと the Zoom out button ボタンを使用して、グラフをズームします。

  • 特定の方法に焦点を合わせるには、グラフ上の対応するブロックをダブルクリックします。

  • グラフの元のサイズに戻すには、ツールバーの 1:1 をクリックします。

  • グラフ上で特定のメソッドを見つけたい場合は、その名前の入力を開始するか、Show Search Toolbar をクリックして検索バーに名前を入力します。

    グラフは、検索リクエストに一致するメソッド名を持つすべてのブロックをハイライトします。

    Previous Occurrence および Next Occurrence を使用すると、検索結果間を高速に移動できます。ツールバーのボタンを使用すると、グラフ全体または特定のサブツリーを検索し、何かが見つかるとすぐに結果に移動することもできます。

グラフをキャプチャーする

スナップショット内の他のデータとは別にグラフをキャプチャーしてエクスポートできます。

  • Capture Image をクリックしてクリップボードにコピーを選択するか、保存をクリックしてグラフを .png 形式のイメージとしてエクスポートします。

フレームグラフで 2 つのスナップショットの違いを視覚化できます。

ベースラインと比較する

  1. 2 つのスナップショットを開きます。スナップショットを開くには、プロファイラーを 2 回実行するか、実行 | プロファイラーのスナップショットを開くに移動してここでスナップショットを選択します。

  2. 基準と比較ボタンをクリックして、比較するスナップショットを選択します。

    Compare With Baseline button

    別の差分タブが開き、比較の結果が表示されます。2 つのフレームグラフが組み合わされ、違いが赤と緑で表示されます。

    フレームの一部が緑色である場合は、このプロファイラーの実行中に対応するメソッドが高速化されたことを意味します。赤い色は、対応する方法が遅くなったことを意味します。

呼び出しツリー

呼び出しツリータブは、サンプリングされたデータをツリーのような構造に編成します。

Call tree tab in the profiler results

各メソッドについて、タブには次の情報が表示されます。

  • 合計実行時間または親の実行時間を共有します

  • 合計実行時間

  • 再帰呼び出し

デフォルトでは、パーセンテージは合計実行時間に比例します。親フレームを基準にして数値を表示するように選択できます。

合計と親の間でパーセンテージを切り替える

  • the Presentation Settings button をクリックし、合計時間の割合を表示または親の割合を表示を選択します。

仮に: 特定の方法に焦点を当てる

PyCharm を使用すると、呼び出しツリー内の特定のノードとサブツリーを調べることができます。特定のメソッドを除外したり、その逆に、現時点で関心のあるノードのみに焦点を当てることもできます。

呼び出しツリータブで必要なノードを右クリックし、次のオプションのいずれかを選択して、専用のタブで結果を開きます。

  • サブツリーにフォーカス : 選択したメソッド呼び出しのみを表示します。親メソッドのサンプルカウンターには、選択したサブツリーで費やされた時間のみが表示されます。

  • 呼び出しにフォーカス : 選択したメソッドとそれを呼び出すメソッドを表示します。このオプションを有効にすると、すべてのフレームに、選択したメソッドで費やされた時間のみが表示されます。

  • サブツリーを除外 : 選択したメソッド呼び出しを無視します。

  • 呼び出しを除外 : 選択したメソッドへのすべての呼び出しを無視します。

メソッドリスト

メソッドリストは、プロファイルデータ内のすべてのメソッドを収集し、累積サンプル時間でソートします。このリストのすべてのアイテムには、いくつかのビューがあります。

  • バックトレースは、呼び出し元の階層を示しています。このビューを使用して、選択したメソッドを呼び出すメソッドをトレースします。

  • マージされた呼び出し先は、呼び出し階層の下位にあるメソッドを要約した呼び出しツリーです。

  • 呼び出し先のリストは、呼び出し階層の下位にあるメソッドを要約したメソッドリストです。

統計

統計タブでは、プロファイリングの結果をインスペクションできます。

Inspecting profiling results

項目

説明

名前

関数の名前。

呼び出し回数

選択した関数の呼び出し数。

時間

選択された関数の実行時間と、この関数によって呼び出された関数によるすべての時間。このコールで費やされた時間のパーセンテージは、括弧内のすべてのコールで費やされた時間に関連しています。

自身時間

選択した関数の実行時間を指定します。この呼び出しで費やされた時間の割合を括弧で表したものです。

ソースコードに移動

  • 特定の関数のソースコードに移動するには、統計タブの対応するエントリを右クリックし、コンテキストメニューからソースに移動を選択します。

    関数のソースコードがエディターに表示されます。

呼び出しグラフ

  1. 呼び出しグラフのカラーコードに注意してください。赤でマークされた機能はより多くの時間を消費し、最も速い機能は緑です。

    An example of the Call Graph
  2. ツールバーボタンを使用して、グラフを操作します。

    項目

    説明

    Zoom In

    このアイコンをクリックすると、ダイアグラムの縮尺が拡大されます。あるいは、NumPad+ を押します。

    Zoom Out

    このアイコンをクリックすると、ダイアグラムの縮尺が縮小されます。あるいは、NumPad- を押します。

    Actual Size

    このアイコンをクリックすると、ダイアグラムの実際のサイズに戻ります。

    Fit Content

    このアイコンをクリックして、内容を現在のダイアグラムのサイズに合わせます。

    Apply Current Layout

    このアイコンをクリックして、ダイアグラムのコンテキストメニューのレイアウトノードから選択した現在のレイアウトを適用します。

    Route Edges

    このアイコンをクリックして、ダイアグラムをウィンドウの端に合わせて拡大縮小します。

    Copy Diagram to Clipboard

    このアイコンをクリックして、ダイアグラムをクリップボードにコピーします。

    Copy Selection to Clipboard

    このアイコンをクリックし、マウスでダイアグラムの領域を選択します。選択した領域がクリップボードにコピーされます。

    Save image

    このアイコンをクリックすると、現在のダイアグラムが PNG 形式でエクスポートされます。

    Print

    このアイコンをクリックしてダイアグラムを印刷します。