进入聊天页面加载速度对比图(左为优化前,右为优化后)
除了进入速度的提升,聊天内容翻页的速度也达到了业内顶尖水平:超越国内头部同类应用,对标 Telegram。不论用户有多少消息,都能够通过不断上拉看到,并且用户感知不到 loading 态。
聊天页面优化前后对比图(上为优化前,下为优化后)
2.3 青春常在 — 防劣化系统
打江山易,守江山难。防劣化是所有达到一定规模的技术团队都会头疼的问题,面对复杂的业务和技术债,手 Q 团队投入了 3 年的时间迭代优化,现在手 Q 的防劣化系统已经达到了业界先进水平。作为手 Q 质量的守门员,我们将其命名为 Hodor(Hold the door)。
防劣化目标:提前发现部分主路径问题,通过门禁防止性能劣化。
- 主干合流门禁:对于较稳定的性能指标,合流前自动检查。
- 日常自动提单:针对偶现的性能问题,开发阶段提前发现。
- 性能数据看板:常态化详细数据看板,上帝视角观测性能。
- 告警机器人:自定义各性能维度告警规则,第一时间反馈问题。
整体方案是基于 Instruments 动态追踪技术采集 diagnostic 诊断数据;xctrace 自动解析 trace 文件,翻译堆栈精准归因;每次提交构建均执行防劣化检测,精准定位问题;还有数据可视化看板 自动提单派发,将质量左移到开发阶段。最终实现了性能报告、数据分析、智能调度、提单告警、设备管理、用例管理等一系列能力。一图以蔽之:
防劣化系统方案简介
Xcode 12 开始提供了 xctrace,其 Release Notes 中解决的很多 issue 也来自于手 Q 团队在防劣化开发过程中发现与反馈。在性能优化方面 QQ 与 Apple 性能团队交流紧密,大家也会加班克服中美时差。
整个手 Q 防劣化系统上线以来,有效地保证了开发主*稳定性,也检测到了大量的性能和崩溃问题,同时拦住了很多新需求引入的性能问题。