分析資源耗用量和 UI 執行緒活動 (XAML)

使用 [應用程式時間軸] 程式碼剖析工具來找出並修正 XAML 應用程式中的應用程式互動相關效能問題。 此工具可透過顯示應用程式資源耗用量的詳細檢視,來協助改善 XAML 應用程式的效能。 您可以分析應用程式準備 UI 框架 (版面配置和轉譯)、服務網路和磁碟要求,以及像是應用程式啟動、頁面載入和視窗大小調整等情況所花費的時間。

[應用程式時間軸] 是可透過 [偵錯]>[效能分析工具] 命令啟動的工具之一。

此工具取代了 [XAML UI 回應性] 工具,而後者是舊版 Visual Studio 診斷工具集的一部分。

您可以在下列平台上使用此工具:

  • 通用 Windows 應用程式 (在 Windows 10 和更新版本上)
  • Windows 8.1
  • Windows Presentation Foundation (.Net 4.0 和更新版本)
  • Windows 7

注意

除了 [時間軸] 資料之外,您還可以收集並分析 CPU 使用量資料和能源消耗資料。 請參閱使用或不使用偵錯工具來執行分析工具

收集應用程式時間軸資料

您可以在本機電腦、連接的裝置、Visual Studio 模擬器 (Simulator 或 Emulator) 或遠端裝置上分析應用程式的回應性。 請參閱使用或不使用偵錯工具來執行分析工具

提示

請盡可能直接在裝置上執行應用程式。 在模擬器上或透過遠端桌面連接觀察到的應用程式效能,可能與裝置上的實際效能不同。 相反地,使用 Visual Studio 遠端工具收集資料並不會影響效能資料。

以下是基本步驟:

  1. 開啟 XAML 應用程式。

  2. 按一下 [偵錯/效能分析工具]。 您應該會在 .diagsession 視窗中看到一份程式碼剖析工具清單。

  3. 選取 [應用程式時間軸] ,然後在視窗底部按一下 [開始]

    Application Timeline Tool Selected

    注意

    您可能會看到 [使用者帳戶控制] 視窗,其要求您提供執行 VsEtwCollector.exe 的權限。 按一下 [是] 。

  4. 執行您感興趣用來在應用程式中程式碼剖析的案例,來收集效能資料。

  5. 若要停止程式碼剖析,請切換回 .diagsession 視窗,並在視窗頂端按一下 [停止]

    Visual Studio 會分析收集到的資料並顯示結果。

    Timeline profiler report

分析時間軸分析資料

收集到分析資料之後,您可以使用下面這些步驟開始分析:

  1. 檢視 [UI 執行緒使用率] 和 [視覺輸送量 (FPS)] 圖形中的資訊,然後使用時間軸導覽列選取您要分析的時間範圍。

  2. 使用 [UI 執行緒使用率] 或 [視覺輸送量 (FPS)] 圖形中的資訊,檢查 [時間軸詳細資料] 檢視中的詳細資料,找出任何明顯缺乏回應性的可能原因。

報告情節、分類和事件

[應用程式時間軸] 工具會顯示與 XAML 效能相關之情節、分類和事件的計時資料。

診斷工作階段時間軸

Performance and Diagnostics timeline

頁面頂端的尺規顯示所分析資訊的時間軸。 這個時間軸同時適用於 [ UI 執行緒使用率 ] 圖形和 [ 視覺輸送量 ] 圖形。 您可以拖曳時間軸上的巡覽列,選取時間軸的區段,以縮小報告範圍。

時間軸也會顯示您已插入的所有使用者標記,以及應用程式的啟用週期事件。

UI 執行緒使用率圖

CPU Utilization Graph

[UI 執行緒使用率 (%)] 圖是顯示某項分類在收集時間範圍內相對花費之時間量的橫條圖。

視覺輸送量 (FPS) 圖

Visual throughput graph

[ 視覺輸送量 (FPS) ] 折線圖會顯示應用程式 UI 和撰寫執行緒上的每秒畫面格數 (FPS)。

時間軸詳細資料

詳細資料檢視是您會花費大部分時間來分析報表的所在。 會顯示由 UI 架構子系統分類的應用程式 CPU 使用率,或耗用 CPU 系統的元件。

支援的事件如下:

名稱 描述
剖析 剖析 XAML 檔案和建立物件所花費的時間。

展開 [時間軸詳細資料] 中的 [剖析] 節點,會顯示由於根事件而剖析的所有 XAML 檔案相依性鏈結。 這可讓您識別效能敏感情節中不必要的檔案剖析和物件建立作業,並排除這些作業以取得最佳化。
版面配置 在大型應用程式裡,螢幕上可能會同時顯示數千個項目。 此顯示可能導致低 UI 畫面播放速率和對應不佳的應用程式回應性。 配置事件準確地判斷每個項目的配置成本 (也就是在 Arrange、Measure、ApplyTemplate、ArrangeOverride 和 MeasureOverride 中所花的時間)。 也會建置參與版面配置階段的視覺化樹狀結構。 您可以使用此視覺效果,來判斷要清除哪些邏輯樹狀結構,或評估其他延遲機制以最佳化版面配置階段。
轉譯 將 XAML 項目繪製到螢幕所花費的時間。
I/0 從本機磁碟或網路資源 (透過 Microsoft Windows 網際網路 (WinINet) API存取) 擷取資料所花費的時間。
應用程式程式碼 執行與剖析或配置不相關應用程式 (使用者) 程式碼所花費的時間。
XAML 其他 執行 XAML 執行階段程式碼所花費的時間。

提示

當您開始進行程式碼剖析以檢視 UI 執行緒上所執行的應用程式時,請選擇 [CPU 使用量] 工具和 [應用程式時間軸] 工具。 將長時間執行的應用程式程式碼移到背景執行緒可以改善 UI 回應性。

自訂時間軸詳細資料

您可以使用 [時間軸詳細資料] 工具列來排序、篩選及指定 [時間軸詳細資料] 檢視項目的註釋。

名稱 描述
排序依據 依開始時間或事件長度排序。
Group events by frame 加入或移除依框架分組事件的最上層 [框架] 分類。
Filter timeline details list 依選取的分類和事件長度篩選清單。
Customize timeline details information 可讓您指定事件的註釋。