プロファイルを比較する
Cloud Profiler を使用すると、プロジェクト内の同じサービスから取得した同じ種類の 2 つのプロファイルを視覚的に比較できます。次の点が異なるプロファイルを比較できます。
- 終了時間: サービスの実行速度が速くなっている時間があるか。時間の経過とともに徐々に向上または減少しているか。
- ゾーン: ゾーンによってサービスの実行速度が速くなっているか。
- サービス バージョン: 新しいバージョンと古いバージョンで著しく異なるか。どのように異なるか。
- 重み: 消費量の多い期間に取得したプロファイルが、平均的なプロファイルとどのように違うのか。
比較の設定
比較を設定するには、元のプロファイルと比較対象のプロファイルのパラメータを指定します。この 2 つのプロファイルは、比較対象フィールドで定義されているパラメータを除く、すべての構成パラメータを共有します。
比較を構成するには、次の手順に従います。
[比較対象] メニューからオプションを選択して、比較タイプを設定します。
オプションのいずれかを選択すると、新しい構成フィールドが表示されます。フィールド名は比較対象で始まり、比較タイプで終わります。たとえば、[バージョン] を選択すると、[比較対象フィールド] の横に [比較対象のバージョン] フィールドが表示されます。
[比較対象] メニューからオプションを選択して、比較プロファイルを指定します。
次のスクリーンショットは docdemo-service
の 2 つのバージョンを比較する場合の設定を示しています。
次のフィールドの設定は、元のプロファイルと比較対象のプロファイルに適用されます。
- 期間:
7 days
- 終了時間:
10/24/19, 8:35 AM
- サービス:
docdemo-service
- プロファイルの種類:
CPU time
- ゾーン:
All zones
- 重み:
All
元のプロファイルのバージョンは 1.75.0
です。比較対象のプロファイルのバージョンは 1.25.0
です。
比較結果のグラフについて
比較結果のグラフは、次の点で標準のグラフと異なります。
- 色の意味
- 関数のブロックサイズの意味
- ツールチップに表示される指標情報
- フォーカス リストの内容
色の意味
標準のフレームグラフでは、グラフのカラーモードを指定できます。詳しくは、カラーモードをご覧ください。
比較結果のフレームグラフでは、元のプロファイルと比較対象プロファイルの指標消費量の差を色で表しています。
- 灰色: 違いがほとんどないか、まったくないことを表します。
- 赤: 違いが正の値であることを表します。
- 青: 違いが負の値であることを表します。
比較する 2 つのプロファイルで消費値の差が大きいほど、色が鮮やかになります。
たとえば、前の図では foo1
コールスタックが青色になっているので、元のプロファイルが比較対象のプロファイルより CPU 消費量が少ないことを示しています。フレーム foo1
は子フレーム bar
よりも明るい青になっているので、関数 foo1
と bar
の指標消費量の差が大きいことを示しています。foo2
コールスタックは赤くなっているので、元のプロファイルが比較対象のプロファイルよりも多くの CPU を消費していたことを示しています。
ブロックサイズの意味
標準グラフの場合、関数のブロックサイズは、分析指標での相対的な消費量を表しています。
比較グラフの場合、関数のブロックサイズは、分析指標での相対的な平均消費量を表しています。比較グラフには、2 つのプロファイルの値を平均することで、1 つのプロファイルにのみ存在するブロックが比較前の半分のサイズで表示されます。
表示される指標値
標準のフレームグラフの場合、ツールチップに表示される指標は、合計と関数自体の 2 つの句で構成されています。どちらの句でも、絶対値と割合が表示されます。
total: 1.01 s, 28.8%; self: 1.01 s, 28.8%
比較結果のフレームグラフの場合、2 つのプロファイルが比較されるため、ツールチップには両方のプロファイルの指標値が表示されます。
図のように、合計と関数自体の句は次の形式で表示されます。
[ABS_ORIGINAL] vs. [ABS_COMPARED] ([ABS_DIFF]), [REL_ORIGINAL] vs. [REL_COMPARED] ([REL_DIFF])
この式で、ABS_
は絶対値を表し、REL_
は相対的な割合を表します。したがって、[ABS_ORIGINAL]
は元のプロファイルの絶対値を意味し、[ABS_COMPARED]
は比較対象のプロファイルの絶対値を意味します。[ABS_DIFF]
フィールドは 2 つのプロファイルの絶対差を表し、[ABS_ORIGINAL]
- [ABS_COMPARED]
と定義されます。絶対差がゼロの場合、変化はありません。
プロファイルの割合は、ルートの未加工値に対する関数の未加工値の比率として計算されます。たとえば、元のプロファイルでは、foo1
に 4.67 秒、root
に 10.03 秒かかりました。したがって、[REL_ORIGINAL]
は約 46.0% です。比較対象のプロファイルに対しても同様の計算が行われます。最後に、[REL_DIFF]
フィールドは 2 つのプロファイルの相対差で、これらの割合の差として定義されています。この差がゼロの場合、変化はありません。
前の例の合計句は、元のプロファイルの関数 foo1
が 4.67 秒で実行されることを示しています。絶対差は -2.24 秒で、これは、元のプロファイルの関数 foo1
が比較対象プロファイルの同じ関数よりも約 2.41 秒速く実行されていることを示します。
total: 4.67 s vs. 6.91 s (-2.24 s), 46.6% vs 69% (-22.4%)
比較をフォーカスする
標準のフレームグラフでは、フォーカス リストに関数名、指標消費量(関数自体と合計)の値、関数へのコールスタックの数が表示されます。
比較結果のフレームグラフでは、フォーカス リストに、元のプロファイルの関数名、指標消費量(関数自体と合計)の値、関数のコールスタック数が表示されます。比較結果のフレームグラフの場合、差分というラベルの付いた 2 つの列、相対差分というボタン、絶対差分というラベルがフォーカス リストに表示されます。相対差分と絶対差分については、表示される指標値をご覧ください。
比較対象のフレームグラフの場合、デフォルトでは、元のプロファイルと比較対象プロファイルの絶対差に応じて異なる色が使用されます。対照的に、フォーカス リストでは比較中の 2 つのプロファイルの相対差が表示されます。
上の例では、元のプロファイルで関数 foo1
の実行に約 4.67 秒かかっていることを示しています。4.67 秒という時間は、ランタイムの約 46.6% に相当します。相対的な差異を表示する [差分] 列には、-22.4%
が表示されています。
指標の絶対値の差を表示するには、[絶対差分] をクリックします。
標準のフレームグラフと比較結果のフレームグラフのどちらを使用している場合でも、テーブルのヘッダー要素を選択すると、テーブル行を昇順(arrow_upward)または降順(arrow_downward)で並べ替えることができます。
比較モードをオフにする
比較モードをオフにするには、[比較対象] フィールドを [なし] に設定します。