[QQ 内存监控整体方案]
经过若干次内存性能优化的迭代, 目前从线上数据指标来看, 新版 Windows QQ 运行的内存在主场景下基本控制在 300M, 这个值已经基本达到我们设定的目标。
从登录后使用过程中的内存指标如下:整体应用的内存平均占用约为 228M;其中中位数占用约为 211M,90% 分位用户内存占用约为 350M。

[QQ 线上内存监控视图]
当然,这个目标只是阶段性的,我们还会持续针对更多使用场景进行内存优化。
防劣化与自动化测试为了持续关注和保证新版 QQ 项目的性能达标且不劣化,除了比较常规的单元测试、代码检查、代码评审机制、框架内置一些开发规范等手段外,我们还在建设一个防劣化平台,主要通过自动化的端对端 (e2e) 测试来持续监控项目集成后的性能变化。
- 定时对主干上集成构建的程序进自动化 e2e 测试;
- 除了对功能的冒烟测试外,针对重点关注的性能指标,构造了对应的帐号和环境,编辑特定的用例,用于采集性能指标;
- 通过将采集和采样的指标上报到防劣化的监控平台,来监控项目集成后的性能变化,如会话切换响应时间、内存占用、CPU 使用率等;
- 监控平台提供按版本和时间的指标曲线、对比,方便查看和分析性能变化情况。同时打通企业微信机器人,对性能指标情况进行实时推送告警;
- 根据告警信息对应的版本信息和代码记录,排查情况,闭环问题。

[防劣化机制示意图]
这一套机制之前在 内测中的 QQ 频道桌面端的项目中尝试应用,运行发现了一些比较典型的代码异常、crash、oom 问题,证明确实有效。新版 QQ 业务和设计都更复杂,建设好防劣化机制无论是对发现问题的效率,还是对整体的性能和质量都是意义重大的,也是我们团队当前重点建设、未来持续迭代的重要任务。


