微软笑话之:蛇精病的“照片”应用
- 8楼
Baka632 我感觉很大一个原因是 WASDK 自身并没有记录窗口大小和位置的 API,在我的印象里,WASDK 的应用想要记录窗口大小,就必须调用 Win32 的 API,总之就是没有 UWP 那么方便了。
BTW,最新版本 WASDK 版本的照片(11050.29009)已经能记住图片查看窗口的大小和位置了,只是图库主窗口暂未支持。
- 已编辑
- 9楼
FYI,在 Windows Latest 原始报道中,提到了性能缓慢的因素,很重要的原因是新版照片很多界面基于 Web,例如照片的编辑界面就是 web based,启动时会默认加载这些 WebView2 组件,这一机制很大程度上拖累了启动的速度。
然而这一点,某红白图标新闻平台丝毫不提,直接剪掉了,真的是新闻学典范。我个人并不推荐在国内尤其某红白图标的新闻平台看 Windows 讯息,断章取义的情绪营私太严重了。
ThinkBou 而且,WinAppSDK版本直接打开照片的速度非常快。比原来上了几个台阶。
正如三楼所说,单纯看加载图片的速度,WASDK 版本的速度要远快于 UWP,这得益于 WASDK 平台自身更为优秀的机制与特性,与微软工程师过去数年对 dot net 和 WASDK 的性能改进。
最后,我很高兴看到 Windows App SDK 公开发布了第一个原生支持 NativeAOT 的版本(1.6-exp1),这代表 WASDK 接收 UWP 的遗产已经到了尾声(不过楼主提及的照片还没上)。对于不知晓的人:UWP 应用启动速度快且内存占用低,很大程度上得益于 UWP/WinUI2.x 混合编译了 dot net Native,但微软在 WASDK/WinUI3 开发中为了对齐 dot net 平台的技术栈,暂时选择回归 JIT 方案。
- 已编辑
- 10楼
Stakarilky FYI,在 Windows Latest 原始报道中,提到了性能缓慢的因素,很重要的原因是新版照片很多界面基于 Web,例如照片的编辑界面就是 web based,启动时会默认加载这些 WebView2 组件,这一机制很大程度上拖累了启动的速度。
最好也别看Windows Latest的小作文,他们自己都搞不明白。实际上打开图库的时候根本不加载web框架的内容,只有照片编辑器在用。如果打开图库的时候加载web框架的内容,那么直接打开照片也会慢……
之家裁剪掉已经算是比较追求事实了。
- 已编辑
- 11楼
Stakarilky 这代表 WASDK 接收 UWP 的遗产已经到了尾声
UWP最有代表性的的InkCanvas还没上呢(
还有UWP的MapsControl,到WAS上直接变成网页套壳,不知道微软在干啥。。
熊猫火狗 是的
- 已编辑
- 12楼
Betta_Fish 因为现在这部分东西(map)给Azure了,原来那套基本上废了
- 13楼
Stakarilky 我怎么记得老版照片(不是那个照片旧版)的编辑页面也是网页套壳呢?
然而刚刚打开发现不是,我又记错了吗?
- 14楼
Stakarilky WebView2组件并没有在启动时加载。
- 15楼
Betta_Fish InkCanvas是那堆笔工具?……
- 16楼
Stakarilky 右键菜单亚克力呢?
- 18楼
Betta_Fish UWP最有代表性的的InkCanvas还没上呢(
在 WASDK 的中,它们计划在 1.7 版本中提供 Inking control
ThinkBou 最好也别看Windows Latest的小作文,他们自己都搞不明白。实际上打开图库的时候根本不加载web框架的内容,只有照片编辑器在用。如果打开图库的时候加载web框架的内容,那么直接打开照片也会慢……
之家裁剪掉已经算是比较追求事实了。
实际上,在某家的网页上,这篇新闻标题下摘要写的是
科技媒体 Windows Latest 在最新博文中指出,Windows 11 照片(Photos)应用升级至最新 2024.11050.3002.0 之后,拥抱 WebView2 的“副作用”就是打开时间比以往更长了。
(然而,正文中搜索 WebView 查无此词,所以我说是“剪掉”了)
对于你说的内容,在一番尝试后,我发现这玩意启动时确实不会连带 WebView。但会耗费大量资源联网接受数据,这些网页内容的加载一定程度上拖累了应用的启动速度。为了验证,计算开机后第一次启动的速度,在断网的情况下,确实启动速度加快了,怀疑跟 OneDrive 同步等乱七八糟的东西有关。Web 技术确实让这个应用更慢了。
仔细嚼了原文的用词,发现原作者似乎也在营造情绪陷阱,把 Photos 的慢与读者对 Outlook PWA 的不满进行关联,并在人们难以验证的点上把 WebView2 树立成稻草人……果然新闻学定律不削不能玩
- 已编辑
- 19楼
- 已编辑
- 20楼
Stakarilky 这是一个 Custom Control,类似新 Explorer 中的地址栏,并不是 Gallery 中的标准控件
查看SnippingTool的XAML,仍然可以看到这是一个标准InkToolbar,只是删了几个按钮
Photos 的右键菜单并不是调用标准的菜单,是一个基于 MenuFlyout 的自定义控件,边角的 Padding 就很明显。
再对比一下右键菜单的XAML结构...可以说非常相似
很可能是把标准的菜单拿过来改了一下样式
标准WinUI3菜单(来自Pixeval)
Photos
- 已编辑
- 21楼
【已删除】
- 已编辑
- 23楼
Stakarilky 但微软在 WASDK/WinUI3 开发中为了对齐 dot net 平台的技术栈,暂时选择回归 JIT 方案
有可能是永远,UWP也能用NativeAOT(
Stakarilky Web 技术确实让这个应用更慢了。
再次强调,web技术用于照片编辑器。
Microsoft Photos: Migrating from UWP to Windows App SDK:
Another huge benefit of Windows App SDK is the addition of WebView2, built upon the new Chromium-based Edge browser. The Photos App uses web tech in a few places, including with our cross-platform image editor used in both OneDrive and the Photos App. Some key benefits of WebView2 include:
- WebGL support enabling improved image rendering quality.
- Superior performance when sharing high quality images between the native and web layers using SharedBuffer.
- Supporting a more up to date version of Chromium, which carries the latest improvements and security updates.
- Allowing us to optimize the performance of our AI Service which requires sending pixel buffers back and forth from our Web Editor to our Native App for AI inference.
至于OneDrive同步,不能说联网获取数据就成了用web技术吧……
- 24楼
Betta_Fish 查看SnippingTool的XAML,仍然可以看到这是一个标准InkToolbar,只是删了几个按钮
原来这玩意还是 UWP,我一直以为 Snipping Tool 已经迁移到了 WASDK,所以理所当然认为是手搓了个 Ink
- 25楼
ThinkBou 至于OneDrive同步,不能说联网获取数据就成了用web技术吧……
那么我修正一下言论,联网的部分让这个应用的启动速度更慢了
因为在不联网的状态下,图库的启动速度确实加快了,且反之,如果你给 Photos 套一个非常缓慢的代理,你会发现 Get Things ready 那个小窗口的持续时间会长到离谱,几乎可以重现 Windows Latest 说的 20 秒启动
我并不清楚这背后的机制,暂时认为可能是与 OneDrive 同步有关,我的 VM 里没有网络分析工具
- 26楼
Stakarilky Snipping Tool 已经不是UWP了,按Win+Shift+Enter没法全屏