RAM 價格飆升,但由於 Electron、Web 組件,流行的 Windows 11 應用程序正在使用更多 RAM

Enda

在 RAM 價格上漲的情況下,WhatsApp Discord 和 Teams 都會消耗更多 RAM

Windows 11 中一些最受歡迎的應用程序使用過多的 RAM,以至於會影響您的 PC 性能,而 RAM 價格飆升的事實使情況變得更糟。該問題是由於開發人員更喜歡 Web 應用程序而不是 Windows 上的本機應用程序的趨勢造成的。

最近,Windows Latest 報導了 Discord、Teams 和新 WhatsApp 等 RAM 密集型應用程序的情況,即使在後台也是如此。這裡的共同點是,這些都是以通信為中心的應用程序,正如您所期望的那樣,即使您不使用它們,它們也需要保持活動狀態。

然而,我們的測試證明,應用程序的本機版本(如舊版 WhatsApp)不會消耗大量 RAM。這些是 Windows 中最常用的一些應用程序,無論人們位於哪個域。

那麼,為什麼這些應用程序沒有原生版本呢?對於這些公司來說,為最流行的桌面操作系統構建本機和優化版本有那麼困難嗎?

現在是談論 RAM 使用的最佳時機,因為它對於 PC 和筆記本電腦來說是非常昂貴的硬件升級。隨著美光科技的離開,情況變得更糟消費類內存業務

Windows 11 在推出時就因對 RAM 的要求較高而受到批評,但到了 2025 年,情況變得更糟,因為 Windows 中的主要通信應用程序像免費資源一樣佔用 RAM。

Discord 總是使用 1GB 左右的 RAM,並且很高興地增加到 4GB RAM

Discord 在遊戲玩家和在線社區中很有名,是最容易被攻擊的,因為該公司已經承認了 RAM 問題。 Windows 客戶端基於 Electron 構建,這意味著您正在運行 Chromium 瀏覽器實例加上 Node.js 作為桌面應用程序。您打開的每個服務器、頻道和每個額外功能都會向該內部瀏覽器添加更多選項卡。

Discord 告訴用戶,正常使用的 RAM 低於 1 GB,但在現實條件下,它可以達到 4 GB,此時該公司開始測試現在臭名昭著的“內存超過 4 GB 時自動重啟”實驗。

如果應用程序已打開至少一個小時,您閒置了 30 分鐘,並且您沒有在通話中,Discord 會在 24 小時窗口內默默地重新啟動一次,以收回內存。

該公司解釋稱,重啟是出於善意。然而,我們認為這是解決根本問題的創可貼。不管怎樣,Discord 的開發人員一直忙於修復真正的內存洩漏,並聲稱高百分位數內存使用量減少了 5%。

參見:iToolab FixGo 評論:功能、優點、缺點和價格

話雖這麼說,Electron 是適用於每個應用程序的完整瀏覽器堆棧,因此您的 PC 最終需要為渲染引擎、JavaScript 運行時和安全沙箱付費,只是為了渲染聊天 UI。

好消息是 Discord 想要解決問題,但壞消息是該公司並不完全有利可圖,儘管已經進入這個行業10年了。因此,我們不能真正指望該公司投資原生應用程序。該公司也沒有原生 macOS 應用程序。

WhatsApp 從一個快速的本機應用程序變成了一個緩慢的網絡包裝程序

Windows 版 WhatsApp 是另一種悲劇,因為它以前很好。舊版基於 UWP 和 WinUI 的客戶端輕量、快捷,在 Windows 11 上感覺很自在。即使在日常使用頻繁、有數百個聊天和活躍組的情況下,它通常也保持在 100MB 空閒狀態下,當您快速滾動長對話時則保持在 250MB 左右。

然後 Meta 發布了作為 WebView2 包裝器構建的新版本,它只需將 web.whatsapp.com 加載到基於 Chromium 的容器中。在我們的測試中,在您登錄之前,新應用程序就已經佔用了大約 300 MB 的 RAM。一旦聊天同步並且您開始滾動,它就會輕鬆躍升至 1.2 GB,CPU 使用率比以前高得多。

性能問題不僅限於 RAM。用戶界面感覺它以低得多的幀速率運行,聊天切換有明顯的延遲,即使在不錯的硬件上,它也會留下持續的沉重感。關閉窗口實際上並不退出應用程序。它最小化到托盤並在後台保留一塊 RAM,以便它可以通過服務工作人員接收通知,這是本機應用程序不需要的。

所有這一切都以“簡化開發”和重用 Web 代碼庫的名義發生,但對於用戶來說,這是直接降級。在 macOS 上,Meta 仍然提供原生 WhatsApp 應用程序。在 Windows 這個擁有更多用戶的平台上,他們現在能做的最好的事情就是瀏覽器窗口。這純粹是 Meta 的懶惰,而且公司也不是承擔不起。

團隊;就連微軟也不在乎

然後是 Microsoft Teams,它從 Electron 遷移到 WebView2。這聽起來像是紙面上的進步。然而,實際上,它仍然是一個網絡應用程序。團隊在閒置時通常佔用大約 1GB RAM。

微軟通過重組應用程序而不是重寫它來承認這個問題。從 2026 年初開始,Teams 將引入一個名為 ms-teams_modulehost.exe 的新進程,該進程獨立於主 ms-teams.exe 進程來處理調用功能。

這並沒有改變這樣一個事實:一切仍然在 WebView2 之上運行,而通常的嫌疑人則在後台運行。

如果從 Windows 中刪除 WebView2 組件,Teams 將無法工作

我們不知道該如何評價這種情況,尤其是當 Microsoft 的企業客戶確實依賴 Teams 進行日常通信時。

目前,我們預計微軟不會關心其他開發人員是否創建本機 Windows 應用程序,或者他們是否將現有的本機應用程序轉移到 Web 應用程序,就像 Meta 所做的那樣。

事實是,如今的網絡瀏覽器使用的 RAM 數量驚人,任何基於其構建的應用程序都會耗盡 RAM。其中最糟糕的是通信應用程序,因為它們實際上需要始終處於開啟狀態。

為什麼每個現代 Windows 應用程序都使用如此多的 RAM

如今 Microsoft Store 上的大多數新 Windows 應用程序並不是真正的 Windows 應用程序,而是瀏覽器引擎。 Discord 使用 Electron。 WhatsApp 和 Teams 使用 WebView2。許多較小的應用程序都使用 PWA。但所有這些都有一個共同的特點:在應用程序中嵌入完整的 Chromium 運行時。

每個 Electron 應用程序都有自己的 JavaScript 引擎、GPU 渲染器、網絡堆棧、音頻管道和沙盒子進程。由於現代瀏覽器安全標準,即使是一個小的 UI 元素也可以生成另一個進程。每個聊天、服務器、頻道、呼叫視圖或設置面板實際上都是一個單獨的沙盒世界。因此,隨著功能並行運行,內存使用量會水平增長。

Teams 和 WhatsApp 使用的框架 WebView2 避免開放自己的 Chromium 副本,但設計仍然相似。您可能認為 Windows 上的新 WhatsApp 只是一個簡單的聊天列表。實際上,它是一個微型瀏覽器選項卡,所有 Chrome 層都在底層運行。

新的 Teams 桌面架構

PWA 與 Windows 上的 Reddit 應用程序一樣,其行為方式相同,因為它們也依賴於 Chromium 的多進程架構和後台服務工作者。

從技術上來說,WebView2 比 Electron 更好

由於每個 Electron 應用程序都像完整的瀏覽器一樣打開,因此它會增加大小和 RAM 使用量,但在 Windows、macOS 和 Linux 上的跨平台行為將保持一致。 WebView2 應用程序使用 Windows 上現有的 Microsoft Edge (Chromium) 安裝在本機應用程序中呈現 Web 內容。因此,它減少了開銷和占用空間,因為它不打開自己的瀏覽器。當然,由於它與 Windows 綁定並且需要 Edge 運行時,因此在可移植性方面存在一些限制。

不管怎樣,這些架構的低效並非偶然。開發人員知道這一點,並且它的存在是為了防止漏洞利用和安全問題。

現代瀏覽器實現進程隔離,以阻止惡意頁面與用戶正在查看的內容進行交互。他們將內存池劃分到沙箱中。它們使渲染遠離邏輯,使邏輯遠離存儲。這種額外使用資源就是我們為了安全而必須付出的代價。因此,當您選擇瀏覽器引擎作為桌面應用程序的基礎時,過多的 RAM 使用是不可避免的。

最重要的是,現代 JavaScript 框架佔用了公平的 RAM 份額。大型包、繁重的差異算法、虛擬 DOM 層和客戶端狀態機都堆積在已經很高的瀏覽器 RAM 使用率之上。從本質上講,即使是優化良好的 Web 包裝應用程序也具有較高的基線內存使用量。

內存洩漏無處不在

當 JavaScript 引用未正確釋放或事件偵聽器隨著時間的推移累積時,就會發生內存洩漏。當框架在其內部緩存中保持空閒對象處於活動狀態時,這種情況很常見。當瀏覽器進程無法釋放長時間運行的會話中的內存時,也會發生這種情況。

一旦內存洩漏開始,它們就會增長為數千兆字節的峰值,就像我們在 Discord 中看到的那樣。這在 Electron、Chromium 嵌入式框架 (CEF) 和 WebView2 應用程序中很常見,而且複雜 JS 堆棧的調試工具遠沒有本機調試器那麼成熟。

令人不安的事實是,我們知道公司會監控 RAM 使用情況,而他們所能做的就是推送可能修復小部分內存問題的補丁。但整個堆棧在抽象背後隱藏了太多內容。

你無法看到 Chromium 在低級別上做了什麼。您無法強制其渲染器更積極地釋放內存。您無法重寫多進程模型。內存使用框架的優化程度是不可避免的限制。

為什麼公司繼續發佈網絡應用程序而不是本機應用程序

面對所有這些問題,您可能想知道為什麼公司還要開發網絡應用程序。難道他們不重視用戶擁有流暢的用戶界面嗎?

最簡單的答案就是成本。從技術上講,單個 JavaScript 代碼庫只需很少的修改就可以在 Windows、macOS 和 Linux 上運行。僱用 JavaScript 開發人員比僱用 C++ 開發人員容易得多。

新員工入職速度更快,開發週期也更短。此外,團隊將能夠同時跨平台發布功能。大多數公司都面臨著更快地發布應用程序的壓力,而此時,開發本機應用程序並不是一個實用的解決方案。

公司還爭論品牌一致性,說實話,這是毫無意義的。這個想法是,公司希望他們的用戶界面在每個設備上看起來都相同。 Web 包裝器可以做到這一點。但不同的操作系統平台有不同的外觀,Windows 除外,這是另一回事了。舉一個更好的例子,想想蘋果的液態玻璃設計。整個操作系統都有這種設計,但如果一個品牌的應用程序看起來完全不同,就會影響體驗。

最可悲的是,公司不再將 Windows 原生應用程序視為優先事項。我們已經看到 Meta 淘汰了 UWP WhatsApp,儘管它基本上運行良好。 Messenger 從 Microsoft Store 中完全消失。 Facebook 和 Instagram 現在是網絡包裝器。

就連微軟也沒有以身作則,因為Teams仍然是一個WebView2應用程序,而他們以262億美元全現金收購的LinkedIn也只是一個Web包裝器。

有趣的是,Windows 11 通知面板中即將推出的議程視圖使用 WebView2 而不是本機 XAML/WinUI。這是微軟作為網絡包裝器製作的操作系統的字面上的一部分。當您與它交互時,它甚至會使用更多的內存。指責其他 Meta 或其他公司有什麼意義嗎?

蘋果享有更優化和原生的應用程序目錄

蘋果用戶對低質量應用程序的容忍度要低得多。他們需要快速、流暢的原生體驗。這種壓力迫使開發者投資原生 macOS 應用,即使它更昂貴。更不用說在 macOS 上創建本機應用程序的難度了。

令人驚訝的是,開發 Windows 本機應用程序比 macOS 應用程序更容易,這是因為 Microsoft 提供了具有成熟框架(如 .NET、WPF 和 UWP/WinUI)的統一生態系統。所有這些都與 Visual Studio 緊密集成,並且還具有廣泛的向後兼容性。

macOS 開發需要通過 Xcode 使用 Cocoa 和 Swift/Objective-C API,Xcode 具有更嚴格的沙箱、簽名和 App Store 分發規則。 Windows 開發人員還可以獲得更廣泛的語言支持,並且更少的把關限制。正如預期的那樣,由於 Apple 嚴格的生態系統和特定於平台的 API 的使用,macOS 開發人員必須應對更陡峭的學習曲線。

但Windows 用戶已經習慣了基於網絡的桌面軟件,開發人員也意識到了這一點。只要應用程序可以運行,即使速度較慢,反彈也往往是溫和的。因此,公司會通過減少投資來做出相應的反應。

這一切都是因為蘋果最初不發售廉價電腦的原因。現在,他們的大多數客戶都擁有更高的購買力,整個公司都被視為奢侈品牌,這就是為什麼即將推出的廉價MacBook會讓PC製造商非常頭疼的原因。

資料來源:微軟、蘋果

說服公司及其開發人員為 Windows 編寫本機代碼,只是為了優化和減少 RAM 使用,因此當基於瀏覽器的模型更便宜、可以在任何地方發布並且用戶不會抱怨太多時,就變得不切實際。

RAM 價格不斷上漲,這一點不會改變

這一切發生的時機再糟糕不過了。在許多情況下,RAM 價格幾乎翻了一番,這主要是由於普通消費者的供應減少、DDR5 定價週期激進,而其中最大的因素是人工智能數據中心產生的壓倒性需求。內存製造商現在優先考慮這些高利潤的企業芯片。

對於 Windows 應用程序的當前狀態,沒有什麼神奇的修復方法。微軟在這方面扮演著最大的角色,因為我們沒有看到開發者獲得任何好處。該公司可以再次推動開發人員使用本機工具,改進 WinUI 以使其更具吸引力,並通過解決 Windows 中長期存在的問題來表明核心系統質量仍然很重要。

如果 Windows 要進入一個基於瀏覽器應用程序的世界,該平台首先需要以身作則,為用戶和開發人員提供更好的合作基礎。

添加為首選來源


支持獨立博客

支持 Ko-Fi
對 Patreon 的支持

提問(論壇)

WL通訊

WL通訊!

掌握最新的 Windows、IT 和 AI 更新。受到 50,000 多名訂閱者的信賴。

姓名電子郵件免費加入