分析資源耗用量和 UI 線程活動 (XAML)
使用 應用程式時間軸 分析工具,尋找並修正 XAML 應用程式中與應用程式互動相關的效能問題。 此工具可藉由顯示應用程式資源耗用量的詳細檢視,協助改善 XAML 應用程式效能。 您可以分析應用程式在應用程式啟動、頁面載入和Windows調整大小等場景中準備UI畫面(版面配置和轉譯)、處理網路與磁碟請求所花費的時間。
應用程式時間軸 是您可以從 Debug>Performance Profiler 命令開始的工具之一。
此工具會取代舊版 Visual Studio 中診斷工具組的 XAML UI 回應性 工具。
您可以在下列平臺上使用此工具:
- 通用 Windows 應用程式 (在 Windows 10 和更新版本上)
- Windows 8.1
- Windows Presentation Foundation (.NET 4.0 和更新版本)
- Windows 7
注意
您可以收集和分析 CPU 使用量數據和耗電量數據,以及 ApplicationTimeline 數據。 請參閱 在發行或偵錯組建上執行分析工具。
收集應用程式時間軸數據
您可以在本機計算機上分析應用程式的回應性、連線的裝置、Visual Studio 模擬器或模擬器,或遠端裝置。 請參閱 在發行或偵錯組建上執行分析工具。
提示
可能的話,直接在裝置上執行應用程式。 在模擬器上或透過遠端桌面連線觀察到的應用程式效能可能與裝置上的實際效能不同。 另一方面,使用Visual Studio遠端工具收集數據不會影響效能數據。
以下是基本步驟:
開啟您的 XAML 應用程式。
點選 「偵錯/ 效能分析工具」。 您應該會在 .diagsession 視窗中看到分析工具的清單。
選取 [應用程式時間軸],然後點擊視窗底部的 [開始]。
注意
您可能會看到 [用戶帳戶控制] 視窗,要求您執行 VsEtwCollector.exe的許可權。 點選 [是] 。
執行您有興趣在應用程式中分析的案例,以收集效能數據。
若要停止分析,請切換回 .diagsession 視窗,然後按一下視窗頂端的 [停止]。
Visual Studio 會分析收集的數據,並顯示結果。
分析時間線剖析數據
收集分析數據之後,您可以使用下列步驟來開始分析:
檢視 UI 線程使用率 和 視覺輸送量 (FPS) 圖形中的資訊,然後使用時間軸導覽列來選取您想要分析的時間範圍。
使用 UI 線程使用率 或 視覺輸送量 (FPS) 圖表中的資訊,檢查 時間軸詳細數據 檢視中的詳細數據,以找出任何看似缺乏回應性的原因。
報告案例、類別和事件
應用程式時間軸 工具會顯示與 XAML 效能相關的案例、類別和事件的計時數據。
診斷會話時程表
頁面頂端的尺規會顯示已分類信息的時間線。 此時間軸適用於 UI 線程使用率 圖形和 Visual 輸送量 圖形。 您可以拖曳時程表上的導覽列來選取時程表的區段,以縮小報表的範圍。
時間軸也會顯示您已插入的任何用戶標記,以及應用程式的啟用生命週期事件。
UI 線程使用率圖表
UI 線程使用率(%) 圖表是一個條形圖,顯示在集合範圍期間各類別中花費的相對時間。
視覺輸送量 (FPS) 圖表
視覺吞吐量(FPS) 折線圖顯示應用程式使用者介面和合成執行緒上的每秒幀數(FPS)。
時程表詳細數據
詳細數據檢視是您花費大部分時間分析報表的地方。 它會顯示應用程式依 UI Framework 子系統或取用 CPU 的系統元件分類的 CPU 使用量。
支援下列事件:
名字 | 描述 |
---|---|
解析 | 剖析 XAML 檔案和建立物件所花費的時間。 在 [時間軸詳細數據] 中展開 剖析 節點, 會顯示因為根事件而剖析的所有 XAML 檔案相依性鏈結。 此提示可讓您在效能敏感的情境中,識別不必要的檔案解析和物件創建,並將其去優化。 |
版面配置 | 在大型應用程式中,可能會同時在螢幕上顯示數千個元素。 此顯示可能會導致低UI幀速率,且應用程式回應能力相對不佳。 Layout 事件準確地決定配置每個元素的成本(也就是 Arrange、Measure、ApplyTemplate、ArrangeOverride 和 MeasureOverride 所花費的時間)。 它也會建置參與版面配置階段的可視化樹狀結構。 您可以使用此視覺化來判斷要剪除的邏輯樹,或評估其他延遲機制,以優化您的佈局處理過程。 |
渲染 | 將 XAML 元素繪製到畫面所花費的時間。 |
I/0 | 從本機磁碟或 透過 Microsoft Windows Internet (WinINet) API 存取的網路資源擷取資料所花費的時間。 |
應用程式代碼 | 執行與剖析或版面配置無關的應用程式(使用者)程式代碼所花費的時間。 |
Xaml 其他 | 執行 XAML 執行時間程式代碼所花費的時間。 |
提示
當您開始分析以檢視在 UI 線程上執行的應用程式方法時,選擇 CPU 使用量 工具,以及 應用程式時間軸 工具。 將長時間執行的應用程式程式代碼移至背景線程可以改善UI回應性。
自訂時間軸詳細資訊
使用 時間軸詳細數據 工具列來排序、篩選及指定 時間軸詳細數據 查看項目的注釋。
名字 | 描述 |
---|---|
依 排序 | 依開始時間或事件的長度排序。 |
![]() |
新增或移除依框架分組事件的最上層 Frame 類別。 |
![]() |
依選取的類別和事件的長度篩選清單。 |
![]() |
您可以指定事件的註解。 |
相關內容
- WPF 小組部落格:適用於 WPF 應用程式的新 UI 效能分析工具
- 使用 C++、C# 和 Visual Basic 的 UWP app 效能最佳做法
- 優化 WPF 應用程式效能
- Visual Studio 中的 程式代碼剖析
- 初探分析工具