比較剖析資料

Stackdriver Profiler 可讓您透過視覺化圖表來比較兩組同類型的剖析資料,這些剖析資料來自專案中的相同服務。您可比較以下不同屬性的剖析資料:

  • Ending times (結束時間):服務執行效能在特定時段會比較快嗎?在一段期間內,服務效能提升或下降?
  • Zones (區域):特定區域的服務執行效能是否優於其他區域?
  • Service versions (服務版本):新版本與舊版本有顯著差異嗎?差異為何?
  • Weight (權重):高用量期間擷取的剖析資料與平均剖析資料之間要有多大程度的不同?

設定比較項目

當您設定比較項目時,可為原始剖析資料和比較剖析資料指定參數。這兩個剖析資料會使用相同的設定參數,除了「Compare to」(比較) 欄位所定義的設定參數不同。

如要設定比較項目,請執行下列操作:

  1. 從「Compare to」(比較) 選單中選取一個選項來設定比較類型:

    選取其中一個選項後,就會顯示新的設定欄位。欄位名稱的開頭會是「Compared」(比較),結尾則是比較類型。比方說,如果您在「Compare to」(比較) 欄位的右側選擇 [Version] (版本),就會顯示「Compared version」(比較版本) 欄位。

  2. 從「Compared」(比較) 選單中選取選項,藉以指定比較剖析資料。

舉例來說,下面的螢幕擷取畫面中,定義原始剖析資料的欄位如下:

  • Timespan (時間範圍)7 days
  • End time (結束時間)3/25/19, 10:20 AM
  • Service (服務)hotapp-service
  • Profile type (剖析資料類型)CPU time
  • Zone (區域)All zones
  • Version (版本)skew_100
  • Weight (權重)All

比較剖析資料除了「Version」(版本) 欄位的值不同之外,以上其他欄位的值都一樣。「Verison」(版本) 的值為 skew_50

CPU 作業時間剖析資料比較

解讀比較圖

經由比較而產生的圖與標準圖有以下幾個方面不同:

  • 顏色代表的意義
  • 函式區塊大小代表的意義
  • 工具提示顯示的指標資訊
  • 焦點清單的內容

顏色代表的意義

在標準火焰圖中,您可以指定圖的色彩模式。詳情請參閱色彩模式一文。

在比較火焰圖中,顏色代表原始剖析資料和比較剖析資料之間函式的總指標用量差異:

  • 灰色:代表差異很小或沒有差異。
  • 紅色:差值是正值。
  • 藍色:差值是負值。

用量的差值越大,顏色越飽和。

比方說,上圖中的 foo1 呼叫堆疊為藍色,表示相較於比較剖析資料,原始剖析資料的 CPU 用量較少。foo1 框架的藍色比自己的 bar 子框架更明亮,表示 foo1 函式比 bar 函式在指標使用量方面差異更大。最後,foo2 呼叫堆疊為紅色,表示相較於比較剖析資料,原始剖析資料的 CPU 用量較多。

區塊大小代表的意義

在標準火焰圖中,函式區塊的大小意味著分析指標的相對使用情況。

在比較火焰圖中,函式區塊的大小則說明分析指標的相對「平均」使用情況。只要平均計算兩組剖析資料的值,則只存在於其中一個剖析資料的區塊就仍會在比較圖中出現,而區塊大小只有比較前大小的一半。

顯示指標值

在標準火焰圖中,工具提示顯示的指標由兩個子句構成,即 total (總計) 和 self (指標本身)。兩句中的絕對值會連同百分比一起顯示:

     total: 3.16 s, 100 %; self: 80 microsec, 0.0003%

在比較火焰圖中,由於比較的剖析資料有兩個,因此工具提示會顯示這兩個剖析資料的指標值:

比較剖析資料中的值

如圖所示,total (總計) 和 self (指標本身) 子句採用以下格式:

     [ABS_ORIGINAL] vs. [ABS_COMPARED] ([ABS_DIFF]), [REL_ORIGINAL] vs. [REL_COMPARED] ([REL_DIFF])

在這種表達方式中,ABS_ 是指絕對值,REL_ 則是指相對值。所以 [ABS_ORIGINAL] 是原始剖析資料的絕對值,[ABS_COMPARED] 是比較剖析資料的絕對值。欄位 [ABS_DIFF] (定義為 [ABS_ORIGINAL] - [ABS_COMPARED]) 是兩個剖析資料的絕對差異。當絕對差異為零,畫面會顯示「no change」(沒有變化)

系統會以函式的原始值和 root 的原始值的比率,計算出每個剖析資料的百分比。例如,如果 foo1 原始剖析資料使用了 1.58 秒,root 使用了 3.17 秒,則 [REL_ORIGINAL] 大約為 50%。比較剖析資料也會執行類似的計算。最後,[REL_DIFF] 欄位 (定義為這些百分比的差異) 則是兩個剖析資料的相對差異。當差異為零,畫面會顯示「no change」(沒有變化)

就前述例子來說,total (總計) 子句顯示原始剖析資料中的 foo1 函式執行了 1.59 秒。絕對差異 -515.32 毫秒表示 foo1 在原始剖析資料中的執行速度,相對於比較剖析資料中的相同函式要快大約 515 毫秒。

     total: 1.59 s vs. 2.11 s (-515.32ms), 49.9% vs 66% (-16.6%)

聚焦比較

在標準火焰圖中,聚焦清單中的每一列都會包含一個函式名稱、指標本身和總計指標使用值,以及該函式中的呼叫堆疊計數。

在比較火焰圖中,聚焦清單中的的每一列都會包含函式名稱、指標本身和總計指標使用值,以及「原始剖析資料」中該函式的呼叫堆疊計數。除了剛才說明的欄位,聚焦清單還包括兩個「Diff」(差異) 欄、一個 [Relative Diff] (相對差異) 按鈕,以及一個 [Absolute Diff] (絕對差異) 按鈕。如要瞭解相對差異和絕對差異,請參閱顯示指標值一節。

根據預設,比較火焰圖會將原始剖析資料和比較剖析資料之間的絕對差異著色。反之,焦點清單預設會顯示兩個剖析資料之間的相對差異。

聚焦清單差異百分比

範例中的資料表顯示原始剖析資料的 foo1 函式使用了約 1.59 秒來執行。1.59 秒的時間相當於大約 49.9% 的執行時間。「Diff」(差異) 欄包含 -16.6% 的值,這個值表示比較剖析資料的 foo1 使用了約 66% 的執行時間。

如要查看指標值間的絕對差異,請按一下 [Absolute Diff] (絕對差異)

無論是標準火焰圖還是比較火焰圖,只要選取資料表標頭元素,即可遞增 arrow_upward 或遞減 arrow_downward 排序資料表列。

關閉比較模式

如要關閉比較模式,請將「Compare to」(比較) 欄位設為 [None] (無)

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Stackdriver Profiler
需要協助嗎?請前往我們的支援網頁