当前位置:  开发笔记 > 运维 > 正文

Winforms和WPF的性能比较

如何解决《Winforms和WPF的性能比较》经验,为你挑选了2个好方法。

由于XAML被编译,因此执行代码应该没有区别.
Winforms(代码如下):

Form formPeter = new Form();
Textbox textbox = new Textbox();
Label l1 = new Label1();

Xaml在运行时没有被解析,因为我认为... :-)

但是如何使用大量控件渲染/执行大型表单呢?哪种技术更快?



1> 小智..:

哪种技术更快?我担心你的问题没有一个简单的答案.

您在运行时未解析XAML的评论既是真的也是假的.虽然XAML不会被解析它的标准化二进制版本(如内嵌在应用程序中的资源)呼吁BAML 在运行时解析.要说DirectX比GDI更快也是一种简化 - 基于WPF和GDI的渲染技术只具有不同的性能特征.例如,WPF使用保留的渲染模式,而WinForms和其他基于GDI的技术则不使用.WPF对象的重量往往更重,因为它们比winforms对象支持更多的属性.我们有几十年的知识,如何使GDI变得非常快,而且只有相对较短的时间使用WPF和XAML.

WPF对于编写应用程序来说足够快,但是你需要时刻保持警惕,你的元素数量不会爆炸(例如,通过创建过于复杂的模板,然后在UI中重复数百或数千次).此外,WPF在不同的图形硬件上执行不同的操作(因为它在内部调用DirectX).在WPF中2D内容应该没问题,即使它完全用软件渲染(比如它在虚拟机上的渲染方式),但是带有大量元素的动画,抗锯齿3D需要真正的GPU能力.随着时间的推移,图形硬件变得越来越强大和流行,并且关于如何改进性能调整WPF的知识得到改进,我们应该看到WPF进一步提前(假设它现在稍微如此......对于某些场景......有时候).所以我猜答案是"它取决于".


我很好奇,对终端服务器的性能有点悲观.
你也应该是,古格.WPF发送图形而不是原始命令或表示控件的标记.AFAIK,微软也没有承诺做任何事情来解决这个问题.

2> amazedsaint..:

WPF使用DirectX进行渲染(速度更快)而不是本机Windows GDI.

您可能已经知道,Native GDI是基于位图的.由于WPF是基于矢量的,因此与GDI相比,WPF可以更好地利用硬件支持.

然而,选择WPF或Winforms的决定在很大程度上取决于其他因素 - UI中需要的灵活性,应用程序需要多少媒体支持等等.WPF不是Winforms的替代品 - 它不是银所有问题的子弹.

随着更多硬件加速功能的出现,WPF可以提供比Winform应用程序更好的功能.

我读过几本有趣的博客.

约翰的帖子

罗伯的帖子

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有