如何加速WPF程序?

时间:2008-10-21 14:24:59

标签: wpf performance

我喜欢使用Windows Presentation Framework进行编程。大多数情况下,我使用WPF和XAML编写类似浏览器的应用程序。

但真正让我烦恼的是WPF的缓慢。一个只有少量控件的简单页面加载速度足够快,但是一旦页面变得非常复杂,就像包含大量数据输入字段,一个或两个选项卡控件和东西一样,它会变得很痛苦。

加载此类网页可能需要一秒钟以上。实际上,特别是在没有那么快的计算机(阅读:客户计算机)上它可能需要很长时间。

与更改页面上的值相同。关于WPF用户界面的一切都不知何故。

这是如此的意思!他们给了我这个漂亮的框架,但是让它变得非常缓慢,所以我不得不一直向我们的客户道歉!

我的问题:

  1. 你如何加速WPF?
  2. 您如何描述瓶颈?
  3. 你如何处理缓慢的问题?
  4. 由于这似乎是WPF的普遍问题,我正在寻找一般建议,对许多情况和问题都有用。

    其他一些相关问题:

8 个答案:

答案 0 :(得分:37)

  1. 如何加速WPF?

    通常在使用以下分析工具之一后,很明显是什么导致了我的瓶颈。

    • 如果内存是问题,那么我虚拟化我的数据。
    • 如果渲染时间是问题,那么我会尽可能虚拟化控件或简化控件模板。
    • 如果处理时间是问题,我会尝试改进我的算法或将工作移到后台线程,并在工作进行时在我的ui中显示一个笨蛋。

  2. 您如何描述瓶颈?

  3. 你如何应对缓慢?

    分析和咨询。

答案 1 :(得分:6)

安装SP1 ... WPF的性能提升非常酷!

了解更多here

以下是在SP1中进行的2次加注的示例:Deffered scrolling & UI Element recyceling !!!

答案 2 :(得分:5)

我无法添加评论,这就是为什么我发布了一个新的答案:我发现这个来自pdc09的视频提供了一些关于如何配置wpf应用程序的想法,因为它帮助了我很多,我想分享链接:

Advanced WPF Application Performance Tuning and Analysis

答案 3 :(得分:2)

WPF适用于带有现代图形卡的计算机。您的客户是否拥有能够运行Aero的现代显卡?如果您的客户使用较旧的显卡,WPF将回退到与硬件加速图形相比运行速度极慢的软件渲染。

您也可能想要对应用程序进行概要分析,以确保它实际上是WPF,这是一个缓慢的部分。可能还有其他东西实际上是瓶颈。

答案 4 :(得分:1)

避免动画有时也会有很大帮助。如果你必须使用动画,降低帧速率,这将改善“感觉”的性能

答案 5 :(得分:1)

删除Alpha透明度/位图效果。

答案 6 :(得分:0)

你可以提供更多细节吗?

当我使用像listview或具有一些复杂性的网格时,我只注意到性能下降。解决方案是简化它。

除此之外,我第一次加载应用时发现性能很慢。

HTH

答案 7 :(得分:0)

我发现支持XAML并在C#中编写整个UI很有帮助。这使我可以精确控制何时创建和加载控件。它还有助于我理解XAML在“幕后”所做的事情。