启动耗时定义
为了更贴合用户体感,支付宝小程序启动耗时记录的是首屏耗时(或称「体感耗时」),是指用户从点击小程序到首屏页面绘制完成、达到可交互状态的耗时时长。一个小程序页面的加载性能怎么样,就是看从开始加载到首屏内容显示出来需要经需要多长时间,所以有了首屏耗时这个指标来衡量性能。
再次重申“首屏”的含义,其表达的是用户看到小程序呈现出来的首个完整页面,非特指小程序的“首页”。具体说明可回到 小程序性能概述 中查看
启动耗时统计口径
小程序启动耗时采用 T2 指标进行拟合,T2指标结束时间点为首屏资源加载完毕的时间点。
启动耗时的计算方式
T2 耗时的计算是以回溯方式进行。从页面打开到页面渲染完成,UC 会记录每一帧时间戳,结束后再进行逐帧比对,直到页面首屏区域全部渲染显示,T2 耗时计算完毕。
“页面首次有内容显示”的时间点,UC 将其定义为 T1。在弱网占比较高的过去,T1 还是有较大的性能衡量价值,而当前 T1 衡量的权重已没弱网络时代那么高了,衡量体系已经快速偏向 T2。
影响启动耗时的因素
可控:除了业务可控因子,如版本包体积大小、API接口耗时、网络请求耗时等(性能优化详见 小程序性能优化原理及手段)
不可控:能影响线上启动耗时的因素,,还会有
- 机型设备(HUWEI、MI、OPPO ...)
- 操作系统(iOS、Android ...)
- 网络环境(WiFi、5G、4G、3G、2G ...)
- 启动场景(冷启动、热启动 ...)
- 小程序版本
小程序「质量洞察」 上统计的启动耗时是整合所有线上用户的机型、设备、系统、网络等各种因素得到平均值,也包括冷、热启动。
后续讨论启动耗时的优化只论述小程序冷启动场景,暂不包括小程序后台切前台的热启动。
FAQ
Q:首屏弹框不处理会增加启动耗时吗?
A:如果弹框中有图片的话,会增加到启动耗时中,没有图片则不会算到启动耗时中,例如 SVG 和 CSS 之类的不算到启动耗时中。
Q:工具(全息检测、性能调试、商家自检)里面的启动耗时数据为什么和质量洞察不一致?
A:质量洞察中统计的启动耗时是所有线上用户使用场景的综合平均。全息检测、性能调试、商家自检均是线下指定机型、指定网络、指定页面的单次测试值,数据自然会与线上有出入,但是检测出来的优化项都是可以作为性能优化的参考点。
Q:开发者如何知道哪些页面算入到首屏耗时统计中?
A:可在云监控中插件,云监控中展示了首屏页面的路径、耗时和流量,开发者可根据监控数据,结合工具给出的优化手段,制定符合自身业务的性能优化策略。
Q:如果开发者觉得数据不准怎么办?
Q:按照支付宝的检测做了好多该指标的针对性优化,启动耗时还是降不下来怎么办?