据我所知,WPF应用程序应该比
Windows Forms应用程序运行得更快,因为WPF应用程序使用DirectX进行渲染而不是GDI.但什么样的应用程序会更快启动:WPF或Windows Forms?开始时间是大致相同还是一种应用程序会比另一种更快?
我没有针对任何特定的操作系统.
只是要指出,根据我的经验,尽管使用DirectX,WPF渲染器实际上比Windows Forms慢很多.这是因为在cpu端进行了大量的细分和布局计算,这有效地抵消了使用GPU的性能提升.
原文链接:https://www.f2er.com/windows/364345.html只是谷歌周围的“WPF慢”或“WPF性能”,你会发现惊恐的开发人员震惊地了解他们花费时间和精力将WinForms转换为WPF因为关于GPU的旋转被浪费,因为结果比原始应用程序慢.
但是……我会说这个. WPF在样式,图形功能,开发人员生产力(数据绑定),动画,外观和感觉等方面远远优于WindowsForms.如果性能确实存在问题,那么在某些方面您可以进行优化.例如,您是否知道可以获得一个API直接写入WPF中的位图(请参阅WriteableBitmap类)以在内存中执行类似GDI的操作?对于某些操作,这(令人惊讶地)比WPF原语快20倍.
类似地,您可以使用虚拟化来提高数据网格的性能等.Telerik有一个网格在交互式帧速率下滚动1,000,000行的示例.
总之,要考虑一下你在做什么,并在网上看到类似的例子.您是在进行实时科学数据采集和可视化还是只是标准的业务应用程序?比较类似的示例以查看框架的功能将帮助您做出决策.
更新2013年第3季度
作为一个更新,在各种项目中,我现在通过从UI线程移动任何东西和所有东西,从WPF看到更快更快的性能.例如.保留UI线程仅用于UI,使用任务并行库或RX做尽可能多的工作.使所有内容都异步,并且在等待时不要阻止UI线程.
您可以将动画(例如,等待或加载动画)移动到不同的线程上,以实现无故障动画.在进行动画过渡时,可以使用渲染到位图.
长话短说?可以从WPF应用程序(以及光滑的UI)获得出色的性能,但您需要投入更多的工作!