練習 2 - 使用 Windows Performance Toolkit 評估快速啟動
雖然 「快速啟動 」評估是輕鬆閱讀報表中取得度量的簡單方式,但您需要安裝 ADK,這需要一些時間才能執行。 您可以使用Windows Performance Recorder (WPR) 工具快速擷取快速啟動追蹤。
步驟 1:使用 WPA 開啟快速啟動追蹤
從 [開始] 功能表開啟 Windows Performance Recorder (WPR)
修改追蹤組態。
選取 [第一層分級 ] 和 [CPU 使用量 提供者]。
將 效能案例 變更為 快速啟動。
將 反復專案數目 變更為 1,以收集單一追蹤。
按一下 [ 開始]。
輸入路徑以儲存產生的追蹤,然後按一下 [ 儲存]。
- 這會強制系統重新開機以收集並儲存追蹤。
系統重新開機之後,請等候 5 分鐘,讓追蹤完成。
您現在有一個追蹤,可以使用Windows 效能分析器 (WPA) 進行分析。
步驟 2:使用 WPA 開啟快速啟動追蹤
從 [開始] 功能表開啟Windows 效能分析器 (WPA) 。
從 [ 檔案] 功能表中,開啟您在步驟 1 中建立的追蹤。
開啟 [ 設定檔] 功能表,然後按一下 [ 套用...
按一下 [流覽類別目錄...]
選取 [FastStartup.wpaprofile]。
按一下 [ 開啟]。
您現在已將視覺效果設定檔套用至追蹤,以取得一些常用的圖形 (CPU、磁片等) 。
步驟 3:視覺化啟用時間表
在[深入分析] 索引標籤中查看感興趣的區域圖表
此檢視提供練習 1 中所述之所有 快速啟動 子階段的時程表概觀。
將滑鼠停留在區域列上方會導致快顯視窗出現,並提供區域本身的詳細資訊。
如果您將滑鼠放在 開機主要路徑 區域上方,您可以看到其持續時間。 在下列範例中,它會持續 13.6 秒。
請花一點時間流覽區域樹狀結構,並查看所有子階段,以熟悉它。
檔案總管初始化和完成所花費的時間是建立 Windows 桌面並讓使用者看見的時間。 此階段 (和之後發生的所有專案,稱為 開機/關後) 可能會受到開機時啟動的進程所影響。
從 Explorer 初始化的開頭開始選取 90 秒間隔,然後放大。
在 [感興趣的區域 ] 圖表下,還有其他兩個寶貴的圖表: CPU 使用量 (取樣) 和 磁片使用量。 它們將用來評估軟體預先載入對 開/關 後資源耗用量和回應性的影響。
應用程式和服務的高 CPU 使用量可能會導致使用者體驗不佳,例如 UI 沒有回應或視訊和音效問題。 當單一進程使用太多 CPU 時,可能會延遲其他進程,因為它們必須競爭系統資源。
當執行緒使用儲存體資源時,它可以增加活動的持續時間。 當多個執行緒爭用儲存體時,產生的隨機磁片搜尋會讓延遲變得更重要。
步驟 4:分析進程 CPU 使用量
若要評估進程耗用多少 CPU 時間,請將焦點放在 取樣) 圖形 (CPU 使用量 。 CPU 使用量 (取樣) 圖形中顯示的資料代表定期 1 毫秒取樣間隔所取用的 CPU 活動樣本。 資料表中的每個資料列都代表單一範例。
此取樣方法不會記錄樣本之間發生的任何 CPU 活動。 因此, CPU 取樣 圖表中未妥善表示非常短持續時間的活動,例如中斷。
檢閱每個進程的 CPU 使用量,以識別具有最高 CPU 使用量的進程, (權數 和 %Weight) 。 若要這樣做,請向下捲動至圖形 CPU 使用量 (取樣) 。 在左側,檢視進程清單。 左側選取的每個使用中進程都會顯示在圖形上。
**提示:**
使用 WPA 圖形時,您可以變更檢視以顯示圖表和資料表。 您可以按一下 [最大化 ] 按鈕,隱藏 [ 分析 ] 索引標籤上顯示的其他圖表。
在此範例中, ImageSHELLY.exe 在目前分析的 90 秒間隔內耗用 12.4 秒的 CPU 時間。 由於此系統上的 CPU 有兩個核心,因此這代表 6.9% 使用率的相對百分比。
您可以使用這項資訊來調查造成此 CPU 耗用量的特定程式,或將這些詳細資料轉送給擁有此程式的開發人員。
您可以新增其他資料行,以擷取詳細資訊 (以滑鼠右鍵按一下資料表資料行標頭) :
執行緒識別碼:造成 CPU 使用量的執行緒識別碼
堆疊:呼叫堆疊,醒目提示造成 CPU 使用量的程式碼路徑和函式
在上述範例中,只有一個執行緒導致 ImageSHELLY.exe 進程內的大部分 CPU 使用量:執行緒 2612,CPU 活動為 10.77 秒。
堆疊顯示此活動來自 ImageSTACEY.dll 模組。
步驟 5:分析進程磁片使用量
若要評估進程耗用多少磁片頻寬,請將焦點放在 [磁片使用量 ] 圖表上。
感興趣的資料行包括:
Pri:磁片 I/O 的優先順序。 三個可能的優先順序層級包括:一般、低和非常低。
IO 類型:I/O 的類型。 三種可能的 I/O 類型包括:讀取、寫入和排清。
進程:建立磁片 I/O 之進程的識別碼。
路徑樹狀結構:結構化樹狀結構,代表 I/O 存取的檔案位置。
大小:大小 (,以位元組為單位) I/O。
磁片服務時間:磁片服務 I/O 所花費的時間量。
IO 時間:I/O 在 Windows I/O 佇列中花費的時間量。
- IO 時間 一律比 磁片服務時間 長,因為 I/O 可以在發生磁片爭用時排入佇列,或必須先完成優先順序較高的 I/O 發送器。
新增這些資料行並加以排列,以取得此檢視:
開/關後 只會考慮一般優先順序 I/O。 根據程式調查這些磁片讀取的相關資訊。 磁片讀取通常會考慮比開機時磁片寫入更多的磁片存取時間,因為必須從磁片讀取大量資料,才能啟動進程和服務。
按一下 Pri:非常低和 Pri: 低數列旁的色彩標記,如此圖形上只會顯示一般優先順序 I/O。
在資料表檢視中,展開 [一般 ] 優先順序資料列。
在資料表檢視中,展開 [寫入]、[ 讀取] 和 [ 排清] 的資料列,然後按一下 [大小 ] 資料行的標頭,以遞減順序排序內容。
您的畫面看起來應該像這樣:
上述範例顯示下列專案:
152 MB 的資料是以一般優先順序從磁片讀取。
129 MB 的資料是以一般優先順序寫入磁片。
- 這些主要是磁片寫入,用來在儲存體上保存擷取的 ETL 追蹤檔案。
在資料表檢視中,展開 [讀取 IO 類型 ] 資料列。
- 您現在應該能夠查看在 開啟/關閉期間造成最大讀取磁片 I/O 數量的進程。
識別參與磁片讀取且不是 Windows 元件的前三個進程。
在資料表檢視中,展開ImageSTUART.exe的路徑樹狀目錄資料列,然後流覽它。
在上述範例中, ImageSTUART.exe 在 開機/關閉期間啟動時從磁片讀取 13.5 MB 的資料,而且大部分的存取都是在 Program Files 資料夾中讀取 DLL 元件。
使用這項資訊,軟體發展人員應該識別其元件和程式,並判斷元件大小是否可以減少,或啟動程式碼路徑是否可以優化,以將從磁片讀取的資料量降到最低。
您也可以使用此資料來識別在開機時啟動的協力廠商進程,並導致磁片使用量偏高。 如果程式似乎引進磁片爭用,則可以從映射中移除它,或只是不要在開機時啟動。