微软一直在尝试让 Windows 现代化。这里所说的“现代化”,主要是指将传统功能迁移到 WinUI——微软目前主推的原生用户界面框架。从“属性”窗口、“自动播放”对话框,到 Windows“运行”工具,越来越多功能都在获得支持深色模式的现代化设计。但问题在于,性能表现如何?

过去几个月里,WinUI 的稳定性确实有所提升,但微软似乎没有得到足够多的认可。Windows“运行”对话框就是一个很典型的例子。

正如许多用户已经注意到的那样,Windows“运行”功能正在获得基于 WinUI 的重新设计。如果用户在“设置”>“系统”>“高级”中手动启用这一功能,它将取代传统的“运行”对话框,也就是通过 Win+R 快捷键打开的旧版本。

新的“运行”对话框保留了用户熟悉的操作体验,同时加入了深色主题以及现代化的图标和界面元素。更令人意外的是,它的运行速度实际上比当前版本更快。

微软表示,在重建“运行”功能时,性能是首要考虑因素之一。

New-Windows-11-Run-dialog.pngOld-Run-dialog-in-Windows-11.png

这个全新的“运行”对话框采用 C# 和 WinUI 3 构建,但实际性能却略胜于基于 Win32 的传统版本。微软在一份文件中公布了内部基准测试数据,并表示:“重写‘运行’时,我们始终将性能放在首位。其显示时间中位数为 94 毫秒,比以往任何时候都更快。”

现有的 Win32 版本“运行”对话框,显示时间中位数为 103 毫秒;而新版本的测试结果为 94 毫秒。两者相差 9 毫秒,意味着新的 WinUI 实现比传统版本快约 8.7%。

当然,这并不意味着只要把某个传统对话框或应用改用 WinUI,就一定能够提升速度。很多情况下,结果很可能恰恰相反。微软自己也承认,WinUI 仍需要在性能方面进行大量改进。

The-modern-Run-dialog-is-getting-backlash-despite-being-faster.jpg

微软在“运行”功能上的一个关键做法,是采用 .NET AOT,也就是“预先编译”技术。新的“运行”对话框是一款使用 C# 编写的原生 WinUI 3 应用,但它会在发布前完成编译,而不是等到启动时再由常规的 .NET JIT 编译器进行即时编译。微软表示,这种方式可以让应用在保留 C# 和 WinUI 3 优势的同时,获得“原生代码般的极致速度”。