2015-11-01 71 views
10

我正在開發.NET 4.5 WPF應用程序並導致UI呈現性能問題。如何配置WPF 4.5 UI性能?

一些谷歌搜索後,我碰到WPF Performance Suite頁面,其中描述了我需要的工具 - 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性能套件,特別是該工具。

於是,我試圖從this回答安裝WPF性能套件但它僅適用於.NET 4.0的應用程序

那麼,哪裏可以獲得適用於.NET 4.5應用程序的WPF性能套件?
或者,更一般地說,如何分析.NET 4.5應用程序的WPF UI渲染性能,以找出樹中哪些元素在複雜UI中對性能影響最大?

+0

你有這些開始菜單快捷方式:的Windows套件| Windows性能工具包| Windows性能分析器和記錄器?這就是我所擁有的,儘管我在我的Win7盒子上安裝了新的Win 10 SDK。也許這套房改了名字。 –

+0

@ChrisO:是的,我有這些捷徑。我試圖用Windows Performance Recorder創建度量標準,並啓用XAML活動和XAML應用程序分析附加配置文件。但是,當我在Windows性能分析器中打開指標時,我看不到任何與XAML指標相關的內容,只有像存儲,內存等常規指標。您是否知道如何使用這兩個應用程序,而不是使用Perforator和Visual Profiler獲取WPF元素樹指標? –

+0

不,我不這樣做,雖然幫助菜單顯示[Windows性能工具包論壇](https://social.msdn.microsoft.com/Forums/en-US/home?forum=wptkv5)的鏈接,但您可能有那裏好運。 –

回答

12

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

要得到的確切位置是在渲染你的WPF佈局瓶頸的想法,你想:

  1. 安裝的Visual Studio 2015年,如果您還沒有一個:)
  2. 轉到調試 - >開始診斷工具不調試
    注意:這似乎是改變調試ProfilerPerformance Profiler ...)。
  3. 檢查申請時間表工具和打開始在這樣的觀點:

Tool settings

  • 當你的應用程序啓動,執行的操作導致問題你」重新感興趣 in。
  • 然後點擊停止錄製並且您最終將獲得您的元素 樹,其中包含渲染每個節點的時間。 然後,你只需要通過持續時間(總)對它進行排序和擴大最慢的節點,直到找到問題:
  • Result

    總之,它會更容易從樹中的節點關聯以上如果您設置使用Name屬性喜歡你的控件的名字你的佈局如下:

    <TextBlock Name="OwnerContact"> 
    
    1

    事實證明,Visual Studio的更高版本具有此內置功能,所以現在使用Visual Studio 2013,我可以通過打開Visual Studio來創建新的Profiler會話,並從頂部菜單中進行分析下拉,只需進入分析 - >分析器 - >附加/分離,將其附加到以調試模式運行的現有進程(我似乎必須在另一個Visual Studio窗口內部執行此操作,否則其顯示爲灰色)。但是,值得注意的是:它非常糟糕,並且不太直觀......我建議使用一些更好的商業輪廓儀,因爲它們更簡單。

    +0

    如果您可以建議使用WPF元素樹分析功能,我會非常樂意嘗試使用商業性質的分析器:)我試過ANTS,但似乎沒有提供這樣的見解。 –

    +0

    關於您提到的VS 2013內置分析工具,有[XAML UI Responsiveness工具](http://blogs.msdn.com/b/wpf/archive/2015/01/16/new-ui-performance - 分析工具換WPF的applications.aspx)。但是,當我試圖將其與我的項目一起使用時,它會變灰。 AFAIK,這是因爲它只適用於基於XAML的Windows Store應用程序,但不幸的是我的應用程序並非如此。或者你的意思是其他一些內置工具? –

    +0

    @AlexanderAbakumov但AFAIK的螞蟻探查器確實剖析了.NET層,它應該包括WPF元素和樹,其中還包括渲染方法和這樣的事情,如果這就是你以後的事情,因爲它構建了一個mehod調用樹,最長的時間執行並以非常好的圖形方式向您顯示。這跟你之後的事情不一樣嗎?此外關於內置工具,我認爲它需要VS的特定版本。我正在使用VS Professional 2013 – Alexandru