Dot-Net

如何分析 WPF 4.5 UI 性能?

  • November 1, 2015

我正在開發一個 .NET 4.5 WPF 應用程序並遇到 UI 渲染性能問題。

經過一番Google搜尋,我遇到了WPF 性能套件頁面,該頁面準確地描述了我需要的工具 - Visual Profiler。它允許查看 WPF 元素樹並分析每個元素對總渲染時間的貢獻。

唯一的問題是該頁面聲明該工具包含在面向 Windows 7 和 .NET 4.0 的 Microsoft Windows SDK v7.1 中。

由於我的應用程序適用於 .NET 4.5 並且我使用的是 Windows 8.1,因此我已經安裝了Windows SDK for Windows 8.1。令我驚訝的是,它似乎根本不包含 WPF 性能套件,尤其是該工具。

然後,我嘗試從這個答案安裝**WPF Performance Suite ,**但它僅適用於 .NET 4.0 apps

那麼,您從哪裡獲得適用於 .NET 4.5 應用程序的 WPF 性能套件?

或者,更籠統地說,您如何分析 .NET 4.5 應用程序的 WPF UI 呈現性能,以找出樹中的哪些元素對複雜 UI 的性能影響最大?

最終,我找到了一個我一直在尋找的工具,這對我很有幫助。

要了解渲染 WPF 佈局的瓶頸到底在哪裡,您需要:

  1. 安裝Visual Studio 2015,如果你還沒有的話 :)
  2. 轉到Debug -> Start Diagnostic Tools without Debugging

注意:這似乎已更改為Debug -> Profiler -> Performance Profiler…)。 3. 檢查應用程序時間線工具並在此視圖中點擊開始:

工具設置

  1. 當您的應用啟動時,執行引起您感興趣的問題的操作。
  2. 然後點擊停止記錄,你最終會得到你的元素樹,其中包含渲染每個節點所花費的時間。然後,您只需要按**Duration(總計)**排序並擴展最慢的節點,直到找到問題:

結果

總之,如果您使用如下Name屬性為控制項設置名稱,那麼將上面樹中的節點與您的佈局關聯起來會容易得多:

<TextBlock Name="OwnerContact">

引用自:https://stackoverflow.com/questions/33468572