整理 | 苏宓
出品 | CSDN(ID:CSDNnews)
今年 4 月,微软 CEO 萨蒂亚·纳德拉在 2023 财年第 3 财季电话会议上宣布,Microsoft Teams 的月活用户已超过 3 亿。作为一款通信和协作办公软件,与 Word、Excel 有所不同,Teams 集成了聊天、视频会议、文件存储、Office 365 等多种功能。
然而,就是这样一款功能齐备的产品,却一直备受性能的困扰,对于很多上班族而言,在内存较小的电脑上运行 Teams 无疑就是一场噩梦。
值得庆幸的是,两年前微软自身也意识到了这一问题,于是随即宣布将重建 Teams,以减少资源消耗。按照原本计划,最新版本将会被称之为 Teams 2.0 ,会在 2022 年末随着 Windows 11 更新而发布。
随着时间的推移,“一鸽再鸽”的重构版 Teams 继 3 月发布预览之后,直至近日才带来正式版本。一经发布,这条官方公告便吸引了高达 105k 的关注量,现在 Windows 和 Mac 用户可以免费安装新版本的 Microsoft Teams 了。
更为值得关注的是,据微软官方公告显示,新版本的 Teams 速度提高了两倍,同时使用的内存减少了 50%。同时,安装新的 Microsoft Teams 应用程序的速度将提高三倍,启动或加入会议的速度将提高两倍,该应用程序现在占用的磁盘空间减少了 70%。
而这一切的性能改进主要归功于微软放弃了 Electron 而采用了 Edge WebView2 渲染引擎。
Electron 为何惨遭放弃?
亲证重构之后的 Teams 最新数据,很多开发者也再次将目光转到了旧版 Teams 应用程序使用的 Electron 框架身上。
要知道,Electron 框架可帮助 Web 开发者将 Web 应用程序移植到桌面平台,从而避免特定平台的复杂性,譬如国外的 Slack、Discord 等通信应用程序,以及国内的 QQ 都使用了 Electron 框架,为何到了微软 Teams 这里却遭到了抛弃。
此前,有开发者 Faisal Khan 发布文章进行过解析,其表示,由于 Electron 应用的后台都运行着 Chrome OS 的一个独特实例,因此运行两个以上的此类应用就会耗尽主机的能量。
基于此,微软早些时候甚至直接发布了一个文档页面用来解释为什么 Microsoft Teams 会占用大量内存(https://learn.microsoft.com/en-us/microsoftteams/teams-memory-usage-perf)。
同时,其还在页面中写道,在 Electron 上设计 Teams 可以加快开发速度,还能保持不同操作系统(Windows 和 Mac)下 Teams 版本之间的均等性。
之所以能保持这种一致性,是因为 Electron 和 Chromium 在所有版本中都保持了相似的代码库。这种架构的另一个优点是,Teams Web 应用程序和桌面版本的内存使用情况相似。Web 应用和桌面版本使用内存的方式与浏览器相似。
下图显示了适用于 Windows 的 Teams 桌面应用程序和 Teams Web 应用程序(在此示例中,在 Google Chrome 中运行)的并排内存使用情况。
一定程度上,使用 Electron 来进行大量处理的 Teams 已成为占用内存和降低计算机运行速度的代名词。
Edge WebView2 “救火”,降内存使用量和磁盘空间
提及微软为什么选用 Edge WebView2 技术来取代 Electron,而非其他。
实则,从严格意义上来看,WebView2 并不能被视为 Electron 的替代品,因为前者不像 Electron 那样可以在桌面平台上快速发布 Web 应用程序的封装器。最初的 WebView(WebView1)使用的是微软的 Edge 渲染引擎,而 WebView2 使用的是和 Electron 一样的基于 Chromium 浏览器引擎。
早些年,Edge WebView2 被微软的 Outlook 用作 Microsoft“One Outlook”项目的一部分,以实现客户端之间更好的代码共享。
在此基础上,微软认为 Edge WebView2 后端有助于提高 Windows Teams 的性能并减少磁盘使用量。
因为与 Electron 不同,WebView2 会监控 Chromium 的行为,以检测可用的系统内存,并有效利用内存来优化渲染体验。如果其他应用程序或服务需要系统内存,Chromium 会将内存让给这些进程。在内存较少的低端电脑上,这将大大提高性能。
此外,WebView2 可以使用许多与 Windows 10 和 Windows 11 内置的 Edge 浏览器相同的系统文件和运行时。
全新的 Teams:磁盘占用减少 70%、内存减少 50%
除了基于这一维度的改进,微软还表示,在 React 框架基础上构建了新的 Teams,以提高 Windows 上应用程序的速度和性能。
最终根据 GigaOm 网站今年 3 月对新 Teams 进行的评测结果显示,与传统 Teams 相比,新 Teams 在加载应用程序、加入以及切换聊天和频道时平均速度快两倍,并且消耗的内存和磁盘空间最多减少 50%。
其中一些结果非常显著,在高端系统中,应用程序连接的时间性能提高了两倍多,而通用系统和低端系统则分别提高了 2.5 倍和 2 倍。
应用程序启动时间(以秒为单位)(越低越好)
加入会议所需的秒数(越低越好)
新 Teams 下的平均磁盘空间消耗总体下降了近 70%,而空闲内存消耗(即 Teams 在后台运行时消耗的内存)下降了 42%。
系统磁盘容量消耗(越低越好)
不过,对于最新版本,外媒 ArsTechnica 点评道,“Mac 端用户并没有直观地能从新 Teams 感受到巨大的改变,因为与 Windows 不同,它们没有内置任何 Edge WebView2 文件——macOS 上的 WebView2 应用与 Electron 应用很像,它包含自己的依赖关系,需要与同一系统上的其他 WebView2 应用分开更新。”
但微软在公告中表示,Mac 上的新 Teams 会有显著的改进,包括更快地切换频道、改善滚动性能、更有效地使用设备资源,以及优化 "通话或会议期间使用多个高分辨率显示器时的团队体验"。
当前 Teams 应用程序的所有用户都将 "在未来几个月内 "升级到新的应用程序。该新 Teams 几乎所有功能都具有完全同等的特性,包括自定义业务线应用程序、第三方应用程序、休息室、7x7 视频、呼叫队列、PSTN 呼叫、聊天和频道中的上下文搜索、交叉发布频道对话等。
你对放弃基于 Electron 的开发怎么看?
对于这些改变,开发者们也有不同的看法,其纷纷表示:
想念原生应用程序;
我可以理解:较小的开发人员需要使用像 Electron 这样的框架来支持跨平台,但像微软这样的大公司确实没有理由不在每个平台上进行完全原生的开发;
好消息。Teams 是一款笨拙的应用程序。如果说有什么理由需要原生应用程序的话,那似乎就是通信和会议应用程序了。就连微软也在很大程度上放弃了原生应用程序,转而使用 Web 技术,这确实很能说明问题。
我讨厌 Electron。它又慢又笨,还占用资源。在我看来,只有那些没有足够资源在多个平台上开发原生应用程序的小型开发商才值得使用它。对于大型开发商(如 MS)来说,使用任何非本地代码(尤其是图形用户界面)都是偷懒。
参考:
https://techcommunity.microsoft.com/t5/microsoft-teams-blog/announcing-general-availability-of-the-new-microsoft-teams-app/ba-p/3934603
https://arstechnica.com/gadgets/2023/10/rebuilt-microsoft-teams-app-promises-twice-the-speed-and-half-the-ram-usage
https://blog.devgenius.io/microsoft-is-finally-ditching-electron-9e081757f9db