在内存价格持续走高、硬件升级开销不菲的当下,Windows系统中的众多主流应用程序,其对系统内存的占用量,已然达到了令人咋舌的地步。
问题的核心在于,开发者倾向于采用网页应用(Web Apps),而非原生应用的开发模式。
Windows Latest最近提到,Discord、Teams以及新版WhatsApp这类通信应用是内存占用的主要源头,即便在后台运行时也会消耗大量内存。
令人唏嘘的是,测试证明这些应用的原生版本(如旧版WhatsApp)并不会消耗如此多的内存。
Discord采用Electron框架开发,实际上是内置了一个完整的Chromium浏览器;尽管官方声称日常使用时内存占用不到1GB,但在实际使用场景中,内存消耗很容易就会攀升到4GB。
公司甚至不得不采取“在内存超过4GB 时自动重启”的权宜之计来回收内存。
WhatsApp的情况更像是一场“悲剧”:旧版UWP/WinUI客户端既轻巧又快速,闲置状态下内存占用通常不足100MB;而新版采用了WebView2技术,本质上就是加载了web.whatsapp.com网页版。
这款应用在未登录状态下就已占用300MB内存,完成聊天同步后内存占用更是轻易攀升至1.2GB,同时还出现界面卡顿、CPU使用率骤增的情况。Meta方面表示这样做是为了“简化开发流程”,但对用户来说,实际体验到的却是性能的大幅下滑。
微软自家的Teams即便从Electron切换到WebView2,本质依旧是Web应用,闲置状态下内存占用常维持在1GB上下。微软计划在明年通过调整应用结构来改善这一问题,不过其核心依然要依靠WebView2。
这些应用之所以如此占用内存,是因为它们大多并非真正的“Windows应用”,而是内置了Chromium运行环境的浏览器引擎。
无论是Electron、WebView2还是PWA,都需要在应用内部运行完整的JavaScript引擎、GPU渲染器、网络堆栈和安全沙箱。
每次打开一个聊天窗口、服务器或者功能,就好比启动了一个独立的沙盒化进程,使得内存占用量以几何级数的方式增加。