冷启动性能WPF



我正在使用Visual Studio中的性能分析工具来评估我正在处理的一个相当大且复杂的WPF应用程序。通过延迟加载以前刚在应用程序启动时加载的大多数用户控件,我已经能够显著减少冷启动时间。然而,我仍然看到我的大部分CPU周期都花在程序集"PresentationFramework.ni.dll"中。这无助于我弄清楚根本原因是什么,因为它只表明时间花在了特定的用户控件上"InitializeComponent"(即XAML解析(或Window.Show(即XAML分析(。

我的问题是:如何才能更深入地了解是哪些特定的XAML元素导致了性能问题?

我使用的是Visual Studio 2013,运行的是Windows 8.1。我曾经使用过旧的Windows 7 SDK WPF性能工具包,它显示了一个非常有用的渲染时间显示,当重新绘制特定的UIElement时,它可以改变屏幕上的颜色,但我似乎找不到在Windows 8上运行的相同工具。

我怀疑用户控件有一个"深层"的可视化树,所以它需要花费时间进行初始化。我自己确实遇到了这个问题,并使用了一种变通方法,在应用程序启动后立即在后台加载用户控件。希望这能有所帮助。

最新更新