再来看看对手是怎么做的。苹果的macOS系统上也有一款天气应用,拉取的气象数据颗粒度跟Windows这边不相上下,同样的实时雷达、同样的逐小时预报、同样的空气质量指数,但苹果的天气应用里干干净净,一个广告都没有。苹果也不是什么慈善机构,人家也是一家要赚钱的上市公司,市值超过3万亿美元。那为什么苹果能做到零广告,微软就做不到呢?有人可能会说,苹果卖硬件赚的钱太多了,一台MacBook Air 13英寸M3版本起售价1099美元,物料成本估计在500到600美元左右,毛利率接近百分之五十,所以苹果有底气在系统自带应用里完全不插广告,把这当成提升用户体验的一种投资。微软确实没有苹果那么高的硬件利润率,Surface Pro 10顶配版在北美市场售价高达4000美元,但即便是16GB内存、256GB存储的起步配置也要2237美元左右,考虑到Surface产品的销量远不及MacBook系列,规模效应不足,零部件采购成本相对更高,毛利率估计在百分之三十出头。所以微软需要在操作系统之外寻找更多的收入来源,广告就成了其中一个选项。从这个角度来说,我倒是不想把微软骂得太狠,毕竟一家公司总要生存,总要给股东交代。如果库比蒂诺能做到无广告,雷德蒙德也没理由做不到。广告可以接受,但前提是不能影响核心体验,更不能把广告伪装成真实数据来糊弄用户。
这里有必要给大家科普一下WebView2到底是个什么东西,为啥它会这么吃内存。WebView2是微软官方提供的软件组件,作用是把Chromium浏览器引擎——也就是微软Edge和谷歌Chrome背后那套同样的技术——嵌入到Windows桌面应用当中。当WebView2在一个应用或者系统组件里运行的时候,它会派生出多个相互独立的子进程(包括渲染进程、GPU进程、网络进程等等),这些进程合在一起消耗的内存,跟一个打开的浏览器标签页差不多。微软从2021年之后在自己的一众第一方系统组件里广泛采用了WebView2,包括小组件、部分Windows搜索功能、某些设置页面等等。流行的第三方应用包括WhatsApp for Windows也都采用了这套架构,进一步加剧了系统范围内的内存消耗。每个使用WebView2的应用都会孵化出自己的一套子进程,所以当Teams、新版Outlook和小组件同时运行时,在任务管理器的详细信息选项卡里看到十几个甚至更多的相关条目是正常现象。一个WebView2实例占用几百MB内存属于常规水平,而当占用突破1GB大关时,通常意味着背后托管它的那个应用出了问题——要么是它在后台持续刷新内容(比如小组件在按计划重新加载资讯流),要么是应用本身存在内存泄漏。Windows 11天气应用占用超过1.2GB,恰恰说明它既在后台勤快刷新,又可能存在资源回收不及时的问题。