一、背景
QQ 作为国民级应用,从互联网兴起之初就陪伴着大家,是许多用户接触互联网的起点。然而,QQ 桌面版上一次技术架构升级还是在移动互联网兴起之前,多年迭代积累了不少技术债务。随着业务发展与技术进步,原有架构已难以支撑 QQ 的持续演进。
2022 年初,我们下定决心对 QQ 进行全面的技术架构升级。对于这样一个国民级应用的重构,挑战无疑是巨大的。新版桌面 QQ 自内测以来受到许多热心网友和行业人士的关注,感谢大家在测试过程中提出的建设性建议和反馈。其中,部分有开发背景的用户对我们采用 Electron 框架表达了担忧:高内存占用、超大安装包、启动缓慢等。究其根本,还是担心新版本资源占用大、体验变差。
针对这些顾虑,我们在内存方面进行了专项优化,并取得了一些阶段性进展。过程中积累的经验也借此机会分享给大家。
新版 QQ 在内存上的挑战主要表现在以下 4 个方面:
- 产品形态:由 1 个复杂的主面板(包含 100+ 复杂度不等的模块)和一系列独立功能窗口构成。窗口与渲染进程一一对应,窗口进程数直接决定 Electron 的内存占用规模。对于那个复杂的主面板,一旦缺乏精细控制,很容易导致内存持续走高。

