"快手 APM 平台建设与性能优化"
本文是关于快手公司在构建其APM(Application Performance Management)平台及进行性能优化的实践分享。APM通常涉及对应用程序性能的全面监控,涵盖可能导致用户体验下降的各种问题,如崩溃、内存不足、应用无响应、卡顿以及启动耗时等。在快手的实践中,他们起初重点关注了崩溃、启动和卡顿的优化,虽然技术指标有所改善,但并未立即反映出用户数据的显著提升。
在经历了一次与增长部门合作优化新用户启动体验的事件后,快手意识到APM对于用户体验和业务增长的重要性。通过减少新用户的启动耗时40%,他们观察到了新用户0播(首次播放)、次日留存等关键数据的显著提升,同时也降低了获客成本,使得性能优化得到了公司的高度重视。
在APM的具体实施策略方面,快手采取了以下方法:
1. **启动优化**:
- **定义问题**:明确启动阶段从用户点击桌面图标到App实际可用的过程。
- **完善工具**:建立启动框架,将启动代码细分为任务,线上收集任务耗时数据,借助Android的sysTrace和iOS自研的火焰图工具来定位优化点。
- **优化整体流程**:通过分场景、用户特性来推迟或取消部分任务,针对未登录、非拍摄或主播用户,以及通过push通道打开的情况进行调整。
- **优化手段**:例如,主动触发dex2oat过程,提前编译代码以提升执行效率;避免某些API的不当使用,如setCookie可能会导致WebView内核初始化,或者避免在布局初始化时消耗过多时间。
2. **其他优化措施**:
- 对于特定操作,如设置桌面图标角标或首次读写sharedPreferences,寻找更快的替代方案,比如使用mmkv提高效率。
- 减少布局的初始化时间,降低布局复杂度,不显示的部分用viewStub替代,以减少资源消耗。
通过上述方法,快手成功地提高了其应用程序的性能,并证明了APM在提升用户体验和促进业务发展中的关键作用。这一经验表明,对于任何希望提供优质用户体验和持续增长的应用开发者来说,性能优化和APM平台的建设都是不可或缺的。