比較剖析資料

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

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

設定比較項目

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

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

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

    選取其中一個選項後,就會顯示新的設定欄位。欄位名稱的開頭會是「Compared」(比較),結尾則是比較類型。舉例來說,如果您選取「Version」(版本),「Compare to」(與以下項目進行比較) 欄位旁就會顯示「Compared version」(比較版本) 欄位。

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

例如,以下螢幕截圖顯示比較兩個 docdemo-service 版本的設定:

兩個 CPU 作業時間剖析資料的比較。

下列欄位的設定適用於原始剖析資料和進行比較的剖析資料:

  • Timespan7 days
  • 結束時間10/24/19, 8:35 AM
  • 服務docdemo-service
  • 設定檔類型CPU time
  • Zone (可用區):All zones
  • 重量All

原始剖析資料的「Version」1.75.0。進行比較的剖析資料其「Version」(版本) 則為 1.25.0

解讀比較圖

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

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

顏色代表的意義

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

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

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

要進行比較的兩個剖析資料之間的使用量差值越大,顏色越飽和。

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

區塊大小代表的意義

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

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

顯示的指標值

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

     total: 1.01 s, 28.8%; self: 1.01 s, 28.8%

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

剖析資料比較中顯示的值。

如圖所示,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 使用了 4.67 秒,root 則使用了 10.03 秒。因此,[REL_ORIGINAL] 約為 46.0%。比較剖析資料也會執行類似的計算。最後,[REL_DIFF] 欄位 (定義為這些百分比的差異) 則是兩個剖析資料的相對差異。當差異為零,畫面會顯示「no change」(沒有變化)

就前述範例來說,total (總計) 子句顯示原始設定檔中的 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%)

聚焦比較

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

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

根據預設,比較火焰圖的色彩取決於原始剖析資料和比較剖析資料之間的絕對差異。相對地,聚焦清單預設會顯示正在比較的兩個剖析資料,其之間的相對差異。

顯示兩個剖析資料之間相對差異的聚焦清單。

範例中的資料表顯示原始剖析資料的 foo1 函式使用了約 4.67 秒來執行。4.67 秒的時間相當於大約 46.6% 的執行時間。「Diff」欄會顯示相對差異,並包含 -22.4% 的值。

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

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

關閉比較模式

如要關閉比較模式,請將「Compare to」(與以下項目進行比較) 欄位設為 [None] (無)

後續步驟