[防劣化推送与告警实际应用图例]
总结可能大家比较关心,为什么一定要选择 Electron?其实我们是经过深思熟虑的:
首先,全新 QQ 意味着我们应该专注在功能快速迭代上,否则,以 QQ 的体量战线会拉得非常长。我们希望最后选择的跨平台方案应该是足够成熟、低开发和使用成本,不需要为了使用框架本身,还需要投入额外巨大的人力成本。这个其实在 React Native、Flutter、Tauri 等跨平台框架的使用过程中,我们都遇到过类似的问题,除了功能开发,为了把框架生态、周边、工具链建设好,还需要投入巨大的额外成本,Qt 也有类似的问题。而使用 Electron,对于 Web 前端开发同学,基本上是 0 成本,现有的 Web 前端的大部分基建都可以直接复用,而且使用 Web 开发 UI 的效率,在主流技术栈里算是很高的了。并且这几年主流的桌面端应用基本都选择了 Electron,如 VScode、Discord、Slack、Skype、Whatsapp、Figma 等等,新的桌面应用基本上也是首选 Electron,另外,Electron 版本的迭代速度和社区氛围都很在线。
其次,从结果或者解决问题的角度来看,经过一系列优化之后基本可以将 QQ 核心聊天场景的内存控制在 300M 以内,150M 的安装包大小,与旧版纯 Native QQ 差别较小。不单单内存占用,其他核心体验,比如切 AIO 的流畅度上要优于旧版 QQ。即便是在今天,QQ 也坚定一年半之前选择了 Electron。
最后,让我们再次聚焦在内存优化的工作上,下图是我们在桌面 QQ 中针对 Electron 内存优化工作的一个概览。内存优化没有银弹,有的只是一步一个脚印深入做下去,芝麻西瓜都要捡,从量变到质变。未来我们完全有信心,凭着已有的经验和对其技术的理解,守住现在这些成果的同时,进一步优化 QQ 生态下的各个子业务、子模块的内存占用问题。因此,也希望通过我们实践经验分享, 让大家从更多辩证的视角来重新看待 Electron 或类 CEF 的技术方案。
[桌面 QQ 内存优化工作概览]
广告一下:新版 Windows QQ 体验地址 QQ PC 版官方网站(https://im.qq.com/pcqq),欢迎感兴趣的同学试用,也欢迎大家多提宝贵意见。
今日好文推荐
两个多月完成全自研:大模型之争,从 GPU 卷到了向量数据库
都在追“新潮”技术,但你有大厂们的动作快吗?
大模型竞争突然升级!亚马逊 CEO 亲自监督、组建新的核心技术团队,集中优势资源打造“最具野心”的大语言模型
一场 AI 引发的开源革命迫在眉睫?Hugging Face 更改文本推理软件许可证,不再“开源”