动画性能比对:WPF / WinUI3 / WebView2

丝滑流畅的高性能动画,对于做一个具有高级感体验的应用来说至关重要。

我最开始是想比对WPF在.Net Framework 462 和 .Net8.0之间进行比对,我原本希望WPF在.Net8.0 UI表现上有肉眼可见的进步,但是比对下来之后,在高压力的UI动画方面基本上没变化,因此暂时不讨论WPF在8.0上面的表现,跳过。我们暂时认为WPF在任何框架上的表现都是类似的;

另外,在嵌入webview2浏览器时,是嵌入到.Net Framework462 还是嵌入到 WinUI3 我也分别进行了比对,但是它们的表现也基本上是看不出来差异,所以这里我们就只区分 WPF / WinUI3 / WebView2 这三种框架。

测试主机的参数如下:

处理器 Intel(R) Core(TM) i9-14900HX 2.20 GHz

机带 RAM 32.0 GB (31.7 GB 可用)

系统类型 64 位操作系统, 基于 x64 的处理器

版本 Windows 11 家庭中文版

版本号 24H2

操作系统版本 26100.3775


基础动画 - 单次

对200张图片进行旋转动画:

WPF: 卡顿的快要动弹不了了,惨不忍睹,体验极差:

WebView2: 丝滑流畅,用平和的减速表现柔和,但是实际帧率一般:

WinUI3: 绝对的硬实力,快得都要看见残影了:


基础动画 - 多次

连续中断地触发多次动画:

WebView2:

WinUI3:

WebView2 和 WinUI3都表现流畅,但是中间有个小插曲,WebView2在二次、三次触发的时候没有清空之前旧的元素,会导致相当卡顿;但是WinUI3完全不受影响。整体来说WinUI3仍然表现更优。


粒子动画 - 3000粒子

WPF:勉强能跑动的感觉,基本带不起来粒子动画:

WebView2: 轻松胜任,丝滑流畅,甚至极其流畅:

WinUI3:流畅,但是貌似不如WebView2更丝滑,差强人意:


粒子动画 - 30000粒子

WPF:完全跑不动了:

WebView2: 像是结冰的感觉,缓慢,很吃力:

WinUI3:仍然极其流畅,与3000粒子的效果相比,由于粒子数量更多,反而看到速度有更快的错觉,性能完全没有受到影响(但是总感觉它的形态缺少一点柔和美,太直接了):


结论

如果 "体验感" 作为第一考量维度,那么 WinUI3是首选,WebView2基本可以胜任,WPF几乎不可胜任。

相关推荐
Chris _data14 天前
WPF 学习第三天 — Modbus RTU 串口通信
hadoop·学习·wpf
布吉岛的石头15 天前
Java 程序员第 43 阶段05:微服务整合大模型,跨服务调用架构设计实战,Seata分布式事务实战
wpf
步步为营DotNet15 天前
基于.NET Aspire 实现云原生应用的高效监控与可观测性
云原生·.net·wpf
2501_9159184115 天前
iOS App性能测试工具的实现方法与优化循环指南
android·ios·小程序·https·uni-app·iphone·webview
四六的六15 天前
WebView里跑RAG——浏览器内知识检索增强实战
前端·实战·个人开发·webview·ai大模型·rag·webview内嵌开发
芒鸽15 天前
HarmonyOS 分布式开发实战:设备协同、数据共享与跨设备迁移
分布式·wpf·harmonyos
Volunteer Technology15 天前
Flink状态管理与容错(二)
大数据·flink·wpf
happyprince16 天前
07_verl-Trainer模块详解
人工智能·架构·wpf·强化学习
bugcome_com16 天前
WPF + Prism 技术指南与实战项目(二、模板搭建)
wpf
小满Autumn17 天前
log4net 日志框架 — 从配置到实战速查手册
笔记·c#·.net·wpf·上位机·log4net