其他
研发背景随着业务需求的不断迭代,京东商城APP功能日趋复杂,性能问题也越发突出。内部统计数据显示,2019年APP非业务相关用户反馈中,性能相关反馈占比达32%,解决线上性能问题已成为提升用户体验、减少用户流失的关键。“工欲善其事,必先利其器”,想要解决线上问题,首先要做到的就是准确定位问题,京东性能监控系统应运而生。本文主要介绍性能监控系统中的APP卡顿监控,围绕卡顿这个性能指标,描述APP卡顿监控系统的搭建过程,分享京东商城APP卡顿优化实战经验和成果。卡顿率&卡顿监控系统框架如何来衡量页面以及APP的卡顿程度,是做卡顿监控首先要考虑的问题。从业界以往经验来看衡量卡顿的指标有很多,如FPS、每帧耗时、卡顿时长等,它们大多是从技术角度来分析卡顿情况,但缺少一个整体的、和业务关联的衡量标准,也无法直接反应受卡顿影响的实际用户比例,所以我们提出了卡顿率的概念。用户在浏览完当前页退出或进入下个页面时,会将其浏览过程中的卡顿情况进行一次整理上报,将这次上报分为两种情况:用户浏览过程中出现了卡顿/没有出现卡顿,由此可以得到页面卡顿率的定义:页面卡顿率=该页面存在卡顿的上报数之和/页面总上报量同样,一段时间内APP整体卡顿上报情况就能反应APP的卡顿率和卡顿影响用户情况:APP严重卡顿率=存在严重卡顿的上报数之和/总上报量APP严重卡顿影响用户占比=存在严重卡顿的用户数/总用户数可以看出,卡顿率从整体来衡量APP的流畅程度,直观的表现出各个业务页面性能的优劣,也能够结合函数调用栈准确定位出影响用户最多的卡顿问题,是整套监控系统对APP卡顿最核心的度量,后续的数据采集、分析和优化也基本围绕卡顿率展开。下面是京东商城卡顿监控系统的整体框架:整个监控系统分为数据采集、采集策略、数据分析&展示三个模块。数据采集模块主要负责对卡顿相关指标进行监控并采集对应数据,核心是各指标定义以及采集方案。