我喜欢使用Windows Presentation Framework进行编程。大多数情况下,我使用WPF和XAML编写类似浏览器的应用程序。
但真正让我烦恼的是WPF的缓慢。一个只有少量控件的简单页面加载速度足够快,但是一旦页面变得非常复杂,就像包含大量数据输入字段,一个或两个选项卡控件和东西一样,它会变得很痛苦。
加载此类网页可能需要一秒钟以上。实际上,特别是在没有那么快的计算机(阅读:客户计算机)上它可能需要很长时间。
与更改页面上的值相同。关于WPF用户界面的一切都不知何故。
这是如此的意思!他们给了我这个漂亮的框架,但是让它变得非常缓慢,所以我不得不一直向我们的客户道歉!
我的问题:
由于这似乎是WPF的普遍问题,我正在寻找一般建议,对许多情况和问题都有用。
其他一些相关问题:
答案 0 :(得分:37)
如何加速WPF?
通常在使用以下分析工具之一后,很明显是什么导致了我的瓶颈。
您如何描述瓶颈?
你如何应对缓慢?
分析和咨询。
答案 1 :(得分:6)
答案 2 :(得分:5)
我无法添加评论,这就是为什么我发布了一个新的答案:我发现这个来自pdc09的视频提供了一些关于如何配置wpf应用程序的想法,因为它帮助了我很多,我想分享链接:
答案 3 :(得分:2)
WPF适用于带有现代图形卡的计算机。您的客户是否拥有能够运行Aero的现代显卡?如果您的客户使用较旧的显卡,WPF将回退到与硬件加速图形相比运行速度极慢的软件渲染。
您也可能想要对应用程序进行概要分析,以确保它实际上是WPF,这是一个缓慢的部分。可能还有其他东西实际上是瓶颈。
答案 4 :(得分:1)
避免动画有时也会有很大帮助。如果你必须使用动画,降低帧速率,这将改善“感觉”的性能
答案 5 :(得分:1)
删除Alpha透明度/位图效果。
答案 6 :(得分:0)
当我使用像listview或具有一些复杂性的网格时,我只注意到性能下降。解决方案是简化它。
除此之外,我第一次加载应用时发现性能很慢。
HTH
答案 7 :(得分:0)
我发现支持XAML并在C#中编写整个UI很有帮助。这使我可以精确控制何时创建和加载控件。它还有助于我理解XAML在“幕后”所做的事情。