我喜欢使用Windows Presentation Framework进行编程.大多数情况下,我使用WPF和XAML编写类似浏览器的应用程序.
但真正令我恼火的是WPF的缓慢.一个只有少量控件的简单页面加载速度足够快,但是一旦页面变得太复杂,就像包含大量数据输入字段,一个或两个选项卡控件以及其他内容一样,它会变得很痛苦.
加载此类页面可能需要一秒钟以上.实际上,特别是在没有那么快的计算机(阅读:客户计算机)上它可能需要很长时间.
与更改页面上的值相同.关于WPF UI的一切都是某种程度的笨拙.
这太平均了!他们给了我这个漂亮的框架,但是让它变得非常缓慢,所以我必须一直向我们的客户道歉!
我的问题:
你如何加速WPF?
你如何描述瓶颈?
你如何应对缓慢?
由于这似乎是WPF的普遍问题,我正在寻找一般建议,对许多情况和问题都有用.
其他一些相关问题:
您使用什么工具进行WPF开发
用于开发WPF或Silverlight应用程序的工具
Todd White.. 37
你如何加速WPF?
通常在使用以下分析工具之一后,很明显是什么导致了我的瓶颈.
如果内存是问题,那么我虚拟化我的数据.
如果渲染时间是问题,那么我会尽可能虚拟化控件或简化控件模板.
如果处理时间是问题我尝试改进我的算法或将该工作移动到后台线程并在工作进行时在我的ui中显示一个throbber.
你如何描述瓶颈?
.NET Memory Pofiler
dotTrace
WPF的性能分析工具
史努比
Crack.NET
你如何应对缓慢?
分析和咨询.
"虚拟化"数据/控件是什么意思? (10认同)
通过'虚拟化'OP意味着:对于具有许多项目的控件(例如列表控件),仅将可见项目保存在内存中,而不是完整的项目集合.当您拥有大量项目时,这可以节省内存,因为您只需要存储用户可见的项目,而不是整个项目. (6认同)
rudigrobler.. 6
安装SP1 ... WPF的非常酷的性能增加!
在这里阅读更多
以下是在SP1中进行的两个enhanchements的示例:Deffered scrolling&UI Element recyceling !!!
你如何加速WPF?
通常在使用以下分析工具之一后,很明显是什么导致了我的瓶颈.
如果内存是问题,那么我虚拟化我的数据.
如果渲染时间是问题,那么我会尽可能虚拟化控件或简化控件模板.
如果处理时间是问题我尝试改进我的算法或将该工作移动到后台线程并在工作进行时在我的ui中显示一个throbber.
你如何描述瓶颈?
.NET Memory Pofiler
dotTrace
WPF的性能分析工具
史努比
Crack.NET
你如何应对缓慢?
分析和咨询.
安装SP1 ... WPF的非常酷的性能增加!
在这里阅读更多
以下是在SP1中进行的两个enhanchements的示例:Deffered scrolling&UI Element recyceling !!!
我无法添加评论,这就是为什么我发布了一个新的答案:我发现这个来自pdc09的视频提供了一些关于如何配置wpf应用程序的想法,因为它帮了我很多,我想分享链接:
高级WPF应用程序性能调优和分析