性能分析平台使用说明
产品简介
性能分析是用于评估和优化小程序性能的工具,该工具帮助开发者监测和分析小程序的性能指标,以优化用户体验和应用性能。该工具包含性能指标的数据看板、性能预警以及分析归因能力。性能指标看板展示小程序的性能状况,协助开发者发现潜在的性能问题。异常预警功能提供异常指标的错误频率、影响范围、异常归因等信息,帮助开发者快速定位和解决问题,从而提高小程序的稳定性和可靠性。
平台地址:控制台 > 选择小程序 > 开发 > 性能分析。
抖音小程序官方数据平台提供以下 3 类能力:
(1)性能报告:提供平台统计数据、BI 数据报表等多项数据分析服务,帮助小程序开发者了解应用性能状态,更高效地发现性能问题,并获得解决方案。
(2)智能优化:提供性能分或单个指标的静态诊断(正 向诊断)、波动归因(劣化归因)结果,部分场景下将直接给出优化建议。
(3)性能预警:对用户体验产生严重影响的指标提供告警和异常归因能力,帮助开发者及时察觉线上故障,保障小程序的正常使用体验。
性能报告
性能概览介绍
性能概览模块提供最核心的性能指标,这些指标能够帮助开发者了解小程序的整体性能状况。该模块提供指标波动情况与同类型小程序的水平参考,指导开发者的优化方向。
内容概要:指标看板提供小程序 T+1 天数据、平台上同类目小程序的分位值或平均值作为优化参考目标,当指标值劣于同类目值时,表示该指标亟待优化。
指标卡:指标卡展示昨日(T-1)指标值较 T-2 日的环比变化、以及与同类型小程序(T-1)的对比情况,包含启动性能、运行性能和质量监测三个子模块的核心数据。
全局筛选维度:
- •版本:支持筛选指定时间区间内小程序发布过的所有版本。
- •时间:指标卡仅支持按自然日筛选,最长支持 30 天范围查询。
- •小程序宿主:小程序的运行平台,可选全部、抖音、抖音火山版、抖音极速版。
- •设备类型:设备系统类型,可选全部、Android、iOS。
- •设备性能分级:根据抖音平台 Benchmark 标准计算,可选全部、高端机、中端机、低端机。
- •场景入口:小程序挂载页面来源,可选当前小程序的所有入口。
- •启动页面:支持筛选当前小程序线上所有启动页面的路径。
性能分:
最核心的数据指标分为 4 大类:
(1)启动性能核心数据:小程序冷启动的相关核心数据,用来描述小程序启动时的用户体验。
(2)运行性能核心数据:小程序运行时的相关核心数据,用来描述小程序运行时的用户体验,如页面切换及网络是否较慢。
(3)质量监测核心数据:小程序质量相关核心数据,用来描述小程序的可用性,如白屏、页面元素渲染异常、JS API 异常指标及原因分布。
(4)重点能力核心数据:小程序重点能力的性能及稳定性,用来描述小程序能力的可用性及用户体验。
模块 | 指标名称 | 指标口径 |
启动性能核心数据 | 冷启动耗时 | |
冷启动打开率 | ||
冷启动打开次数 | 各场景入口点击冷启动 小程序的次数 | |
冷启动流失人数 | ||
首次有意义渲染耗时 | ||
运行性能核心数据 | 页面切换耗时 | 从触发路由切换到下一级页面,到目标页面最大元素渲染完成的耗时,即次页 LCP |
页面切换较慢占比 | 页面切换耗时大于 1200ms,占总页面切换耗时次数的比例 | |
网络请求耗时 | 从触发网络请求,到网络请求结果返回的耗时,包括请求成功和失败场景 | |
质量监测核心数据 | 质量异常影响人数 | 质量监测模块中,白屏影响人数+页面元素渲染异常影响人数+JS API 调用异常影响人数 |
白屏次数 | 用户访问小程序内页面时遇到白屏问题的次数 | |
页面元素渲染异常次数 | 页面内元素渲染时因发生 JSError 等异常导致元素无法正常展示的次数 | |
JS API 调用异常次数 | 页面内调用 JS API 时结果为 fail 的次数 | |
重点能力核心数据 | 视频启播耗时 | 从video组件创建到视频首帧渲染完成耗时 |
视频未启播率 | (从 video 组件创建到首帧渲染完成期间离开页面次数 + 启播期间 video 播放错误次数之和) / video组件创建总次数 | |
视频未启播次数 | 从 video 组件创建到首帧渲染完成期间离开页面次数 + 启播期间 video 播放错误次数之和 | |
播放卡顿率 | 视频播放过程中出现卡顿事件的播放次数/视频播放总次数 |
数据解析方式
了解小程序所处水平。
看板中的每个指标卡提供了与同类型小程序的基线对比,如下图。
较昨日的增减百分比 = ((T 的值 - T-1 的值) / T-1 的值) * 100
。较同类型的增减百分比 = ((T 的值 - 同类型小程序 T 日较差的值) / 同类型小程序 T 日较差的值) * 100
比如下图红框表示相对于同类型中较差的小程序的水平。T 表示时间筛选器取值的具体日期。
如果小程序的数值劣于同类型平均值,则说明小程序处于较低水平,需要优化。
可通过以下方式查看相对优劣程度:
- •当冷启动耗时较同类型高时,启动速度慢于大多数同类型小程序,说明急需优化。
- •冷启动打开率:当冷启动打开率较同类型低时,流失人数较多,从点击入口到成功进入小程序的用户比例较低,直接影响用户访问量。
- •启动流失人数:当启动流失人数较同类型高时,流失人数较多,流失人数 = 冷启动打开次数 × (1 - 冷启动打开率),可通过优化冷启动打开率减少流失。
启动性能
启动性能转化漏斗
根据小程序启动顺序,将启动流程分为 4 个主要阶段,提供阶段间的耗时指标,以分析可优化点。
漏斗层级 | 说明 |
阶段一:打开小程序 | 点击打开小程序 |
阶段二:框架资源准备完成 | 包下载、框架双线程资源(JSC, Webview)运行完成 |
阶段三:页面首帧渲染完成 | 等于 FP |
阶段四:页面最大元素渲染完成 | 等于 LCP 触发 |
次数:进入到当前阶段的次数。
耗时:从上一阶段到当前阶段的时间。
转化:当前阶段完成的次数/第一阶段完成的次数。
漏斗层级 | 过程指标 | 展示样式 | 指标描述 |
第一层➡️第二层之间 | 代码包下载耗时 | 指标卡 | 小程序代码包下载耗时 |
创建 App 耗时 | 指标卡 | 小程序 App 创建执行耗时,包含小程序 App.js 代码执行,App.onShow, App.onLaunch 同步生命周期执行耗时 | |
HTML 和 CSS 加载耗时 | 指标卡 | 小程序 HTML,CSS 文件加载耗时 | |
第二层➡️第三层之间 | 页面首帧渲染耗时 | 指标卡 | 页面首次渲染开始到渲染完成的耗时 |
启动后立即路由占比 | 指标卡 | 冷启动后,在启动页面渲染完成前路由到其他页面的次数 / 冷启动次数 | |
第三层➡️第四层之间 | 可视区域外图片加载占比 | 指标卡 | 在用户可见窗口区域外加载的图片数量 / 所有图片数量 |
配置方案预取命中率
| 指标卡 | | |
数据预取JS方案命中率 | 指标卡 | ||
数据预取JS方案图片命中率 | 指标卡 |
启动性能明细数据
启动性能明细数据模块内包含以下图表,说明如下:
图表名称 | 说明 |
冷启动耗时分布 | 展示小程序冷启动在不同耗时时段的启动次数占比和启动次数 |
用户冷启动流失耗时分布 | 展示小程序冷启动在不同耗时时段的用户流失人数占比和人数 |
主要场景冷启动耗时 | 展示小程序主要入口场景的冷启动次数占比和冷启动耗时 |
主要场景冷启动打开率 | 展示小程序主要入口场景的冷启动次数占比和冷启动打开率 |
FAQ
启动性能漏斗数据中,前一个阶段到达率低于后续阶段。
原因:可能存在启动后立即路由。因为启动耗时是指从启动到第一个 LCP 到达,如果启动页面 A 后立即 redirectTo 或者 relaunch 页面 B,此时页面 B 触发页面最大元素渲染完成,但由于页面 A 已销毁导致其数据未上报或丢失。
影响范围:不影响整体用户体验,但启动后立即路由直接影响启动耗时,耗时过长可能造成用户提前离开,建议开发者减少使用。
运行性能
页面切换耗时明细
提供“指定页面”过滤条件,支持选择指定页面查看页面切换耗时明细,以分析各个跳转路径的性能情况。
指定页面:路由切换的目标页面。
来源页面:路由切换的来源页面,如从页面 A 跳转到页面 B,A 为来源页,B 为指定页面。
指标介绍:
指标名称 | 指标口径 |
页面切换次数 | 触发切换到下一级页面的总次数 |
页面切换到达率 | 触发切换到下一级页面且页面最大元素渲染完成次数/触发切换到下一级页面的总次数 |
页面切换较慢次数 | 页面切换耗时大于 1000ms 的次数 |
页面切换较慢占比 | 页面切换耗时大于 1000ms 的次数/页面切换总次数 |
页面切换耗时及其分布图表:
图表名称 | 说明 |
页面切换耗时 | 展示对应页面 path 的切换次数占比和耗时均值 |
页面切换耗时分布 | 展示页面切换次数和页面切换耗时在各时间段的分布 |
网络请求耗时明细数据
提供小程序网络请求明细数据,以分析网络请求性能及稳定性问题,观测网络请求变化趋势。
“请求目标”包含两级选项:
- •一级选项包括:「全部」、「tt.request」、「tt.downloadfile」、「tt.uploadfile」。
- •二级选项包括:一级选项类型下所有请求的接口地址。
指标介绍:
指标名称 | 指标口径 |
网络请求发起次数 | 用户在小程序页面内触发网络请求的次数(注:此为近似值,含有抽样拟合逻辑) |
网络请求成功耗时 | 用户在小程序页面内触发网络请求到返回 success 结果的耗时 |
网络请求 失败次数 | 网络可用条件下,用户在小程序页面内触发网络请求,网络请求返回结果为 fail 的次数 |
网络请求失败占比 | 网络可用条件下,用户在小程序页面内触发网络请求后返回结果为 fail 的次数/用户在小程序页面内触发网络请求的次数(注:此为近似值,含有抽样拟合逻辑) |
请求接口流量和耗时图表:
图表名称 | 说明 |
请求接口流量和耗时 | 展示请求接口的请求次数和耗时(接口数量最多按网络请求次数降序排列前 10 个) |
质量监测
页面白屏
用户在页面停留一定时间(4s)后,离开时页面呈现白屏状态即视为发生白屏。该现象可能影响用户体验,导致用户终止使用小程序,核心指标如下:
指标名称 | 指标口径 |
白屏次数 | 用户访问小程序内页面时遇到白屏问题的次数 |
白屏占比 | 用户访问小程序内页面时遇到白屏问题的次数/用户访问小程序内页面总次数 |
启动白屏次数 | 用户在小程序冷启动进入小程序页面时遇到白屏问题的次数 |
启动白屏占比 | 用户在小程序冷启动进入小程序页面时遇到白屏问题的次数/用户在小程序冷启动进入落地页次数 |
白屏影响人数 | 访问小程序内页面时遇到白屏问题的用户数去重 |
白屏原因分析如下:
- •对当前筛选条件下所有白屏事件的 errcode 进行聚类分析后,通过饼状图展示各聚类占比分布。
- •点击具体某个 errcode,弹窗展示该错误码下 Top5 错误信息及其出现比例。
- •饼状图最多展示 10 个错误原因。当原因超过 9 个时,按出现次数降序展示前 9 项,其余合并为「其他」。
- •对当前筛选条件下所有白屏事件的 errcode 进行聚类分析后,通过饼状图展示各聚类占比分布。
- •点击具体某个 errcode,弹窗展示该错误码下 Top5 错误信息及其出现比例。
- •饼状图最多展示 10 个错误原因。当原因超过 9 个时,按出现次数降序展示前 9 项,其余合并为「其他」。
页面元素渲染异常
用户在页面停留一定时间(4s)后,离开时页面部分模块呈现白屏状态即视为页面元素渲染异常。核心指标如下:
指标名称 | 指标口径 |
页面元素渲染异常次数 | 页面内元素渲染时因发生 JSError 等异常导致元素无法正常展示的次数 |
页面元素渲染异常占比 | 页面内元素渲染时因发生 JSError 等异常导致元素无法正常展示的次数/页面访问次数 |
页面元素渲染异常影响人数 | 访问小程序内页面时遇到页面元素渲染异常问题的人数去重 |
JS API 调用异常
提供小程序在运行过程中调用 JS API 结果为 fail 的明细数据。JS API 异常可能导致部分功能不可用。
该模块支持以下两种筛选条件:
- •指定页面:支持选择指定页面查看页面内发生的 JS API 调用异常情况。选项包括小程序下所有的页面 path。
- •请求接口:支持选择指定接口查看该接口下发生的 JS API 调用异常情况。选项包括小程序下所有调用过的 JS API。
指标说明。
指标名称 | 指标口径 |
JS API 调用异常次数 | 页面内调用 JS API 时结果为 fail 的次数 |
JS API 调用异常占比 | 页面内调用 JS API 时结果为 fail 的次数 / 页面内调用 JS API 的次数 |
JS API 调用异常影响人数 | 访问小程序内页面时遇到 JS API 调用异常问题的人数去重 |
重点能力性能
接入重点能力性能指标覆盖更多性能分析场景,提升平台使用体验。目前提供 video 性能相关数据,包含:
- •video 启播性能:描述 video 启播期间的体验
- •video 运行性能:描述 video 启播后的体验
video 启播性能
video 启播性能明细数据
指标说明
指标名称 | 指标口径 | 分位值/绝对值 |
视频启播耗时 | 从 video 组件创建到 video 首帧渲染完成耗时 | 80分位值 |
视频未启播率 | (从 video 组件创建到首帧渲染完成期间离开页面次数 + 启播期间 video 播放错误次数之和) / video组件创建总次数 | 绝对值 |
视频未启播次数 | 从 video 组件创建到首帧渲染完成期间离开页面次数 + 启播期间 video 播放错误次数 | 绝对值 |
视频播放错误次数 | 启播期间 video 播放错误次数 | 绝对值 |
视频启播期间离开人数 | 从 video 组件创建到首帧渲染完成期间离开页面人数去重 | 绝对值 |
- •较 7 日前:(1 - (当日数据 / 7 日前同期数据)) × 100%
- •较行业均值:(1 - (当前小程序数值 / 同行业平均值)) × 100%
video 启播性能明细数据
- •短剧类型小程序:提供短剧 ID 相关分布
- •其他小程序:展示 src 相关资源分布
图表名称 | 数据介绍 |
启播耗时分布 | 启播次数:即 video 组件创建次数 占比:当前耗时区间内的启播次数占全量启播次数的比例 |
主要剧集启播耗时/主要资源启播耗时 | 启播次数:即 video 组件创建次数 耗时:坐标所对应的短剧 ID/资源链接对应的启播耗时。 |
主要未启播剧集 | 未启播次数:即从 video 组件创建到首帧渲染完成期间离开页面次数与启播期间 video 播放错误次数之和 占比:坐标所对应的短剧 ID/资源链接对应的未启播次数/全量未启播次数 |
视频播放错误事件分析图表 | 对当前筛选条件下,所有视频播放错误事件的errcode进行聚类后,通过饼状图展示每个聚类下的占比。 点击某个 errcode,弹窗展示 errcode 下的 Top5 errmsg 及其占比。 |
video 运行性能
运行性能概览
指标名称 | 指标口径 | 分位值/绝对值 |
播放卡顿率 | 视频播放过程中出现卡顿事件的播放次数/视频播放总次数 | 绝对值 |
播放卡顿次数 | 视频播放过程中出现卡顿事件(解析下一帧时间大于 200ms) | 绝对值 |
音画不同步资源占比 (仅短剧小程序展示) | 经过平台检测存在音画不同步问题的资源数量/总资源数量 | 绝对值 |
音画不同步资源数量 (仅短剧小程序展示) | 经过平台检测存在音画不同步问题的资源数量 | 绝对值 |
video 运行性能明细数据
图表名称 | 数据介绍 |
主要播放卡顿剧集 | 播放次数:即 video 组件创建次数 卡顿率:坐标所对应的短剧 ID/资源链接对应的播放卡顿率。 |
播放卡顿原因分析 | 对当前筛选条件下,所有播放卡顿错误事件的 errcode 进行聚类后,通过饼状图展示每个聚类下的占比。 点击具体某个 errcode,弹窗展示该错误码下 Top5 错误信息及其出现比例。 |
音画不同步资源列表 (仅短剧小程序展示) | 以列表形式展示当前小程序下所有音画不同步的剧集信息。 |
FAQ
主要未启播剧集/资源中的“无效链接”是什么含义,如何解决?
无效链接指开发者使用空 src 资源启播导致启播失败的情况。
- •未启播定义:
- ◦分子统计范围:客户端未收到开始渲染回调且接收到 onError 回调的次数,或用户离开页面的次数
- ◦分母:video 组件创建后客户端设置/更新视频资源总次数(包含空字符串更新)
- •业务场景:开发者使用空白字符串或不合法的
短剧 ID
进行播放- •用户视角:黑屏界面,与其他启播失败表现相同
智能优化
- •静态诊断:针对小程序当前性能指标问题,系统分析并提供优化建议。
- •波动归因:对比小程序诊断日期与对比日期的指标值,给出相应周期指标的变化,以及导致变化的原因,以协助理解指标变更并进行下一步优化。
静态诊断
性能分优化方案
最快提升至下一档
方案介绍:适用于想要快速提升 性能分档位并获取性能分权益等场景。
指标优化顺序:优先优化当前性能分中档位最低的指标,同等档位下优先权重高的指标。
优先优化排名较差指标
方案介绍:适用于想按照小程序运行模块进行整体优化,提升小程序整体性能表现,改善同行业排名。
优化建议
此处平台采用同行业优秀案例基准值进行对比,输出指标差异及优化空间,具体分析如下:
- •启动耗时:为提供更完整的启动链路问题分析,此处对比的是冷启动耗时数据,诊断结论中的指标值比性能分中的冷热启动耗时要高。
- •启动打开率分析使用冷启动数据,因包含完整启动链路分析,故诊断值可能低于性能分的综合指标。
- •页面切换耗时、页面切换到达率:诊断建议正在建设 中,平台暂未提供,可根据指引文档进行优化。
- •白屏/渲染异常数据仅反映筛选条件下的关联异常,开发者需结合业务逻辑判断因果关系。
波动归因
性能分归因中会给出导致性能分变化的 top3 指标。如需进行全指标优化,在优化建议部分进行切换查看。
诊断建议
诊断建议部分会给出不同指标的变化原因。其中启动性能部分(启动耗时、启动打开率)与静态诊断类似,也是给出冷启动指标的相对变化,通常来说,冷启动耗时较高,若发生劣化会直接影响整体启动耗时;基于冷启动耗时对比,也能完整分析链路中的性能问题。
与静态诊断不同点:此处对比的是当前小程序本身,因此诊断建议也是从小程序本身出发,提供主要的影响维度(例如版本差异、宿主环境影响,如需自行排查可使用拆维诊断功能)。确认影响维度后,如需正向优化,可在静态诊断中筛选对应维度并进行优化,具体操作可参考诊断建议。
使用后可提交您的使用建议,我们将持续优化。
拆维诊断详情
诊断建议显示核心影响维度,如需自主分析,可手动筛选指定维度查看指标波动详情。
性能预警
性能预警功能对显著影响用户体验的指标提供预警能力,使开发者及时感知线上问题并处理优化,提升小程序的稳定性和可靠性。预警提供异常次数、影响范围等信息,协助开发者快速定位和解决问题。性能预警功能支持创建自定义预警规则,如自定义 PV/UV、影响人数、环比波动阈值等,为开发者提供更灵活的小程序性能监控。
预警历史
预警历史展示小程序在一定时间段内接收到的预警信息,包括预警时间、预警内容、归因信息等。
预警感知条件:订阅预警规则后即可接收预警信息(路径:性能预警-预警规则-订阅管理)。
预警感知群:如果预警通知方式选择了飞书群,进入该群后即可接收预警信息,进群方式如下。
预警规则
预警规则提供以下 2 类预警规则,开启订阅后,当指标满足预警条件时会自动触发预警。
(1)默认规则:由平台根据小程序治理策略默认设定,无需重新配置预警规则。平台会在即将触及平台治理底线时进行预警。为保证预警的有效性,平台优化了预警的频次和阈值,减少不必要的预警产生,具体阈值可能会根据平台策略调整。
(2)自定义规则:自定义规则支持开发者创建自定义预警规则,可以针对给定指标自定义预警前提,设置更符合需求场景的预警。自定义预警与默认预警触发逻辑不冲突,如果同时满足且订阅两类预警条件,会接收到两条预警信息。
直接在「订阅管理」开启订阅开关,即使用平台的默认预警规则。
默认规则
一级指标名称 | 预警阈值 | 预警间隔(预警产生,具体通知间隔以用户配置为准) |
网络请求失败 |
| 触发一次预警后(T),满足以下条件,T+3 小时内不重复触发预警:
|
页面白屏 |
| 触发一次预警后(T),满足以下条件,T+3 小时内不重复触发预警:
|
视频播放异常 |
| 触发一次预警后(T),满足以下条件,T+3 小时内不重复触发预警:
|
页面元素渲染异常 |
| 触发一次预警后(T),满足以下条件,T+3 小时内不重复触发预警:
|
冷启动耗时 |
| 无 |
冷启动打开率 |
| 无 |
自定义规则
一级指标名称 | 二级指标名称 | 预警前提 绝对值 | 预警条件(上下限) 变化率 | 预警条件(上下限) 绝对值 |
页面白屏 | 页面白屏率 | 5min 周期:页面白屏影响UV数 ≥ 10 1h 周期:页面白屏影响UV数 ≥ 200 | [1%, +∞] | (0%, 100%] |
页面白屏次数 | [1%, +∞] | 5min: [10, +∞] 1h: [200, +∞] | ||
页面白屏影响UV数 | [1%, +∞] | 5min: [10, +∞] 1h: [200, +∞] | ||
网络请求失败 | 网络请求失败率 | 5min 周期:网络请求失败影响UV ≥ 75 1h 周期:网络请求失败影响UV ≥ 1000 | [1%, +∞] | (0%, 100%] |
网络请求失败次数 | [1%, +∞] | 5min: [75, +∞] 1h: [1000, +∞] | ||
网络请求失败影响UV | [1%, +∞] | 5min: [75, +∞] 1h: [1000, +∞] | ||
视频播放异常 | 视频播放异常率 | 5min 周期:视频播放异常影响UV ≥ 15 1h 周期:视频播放异常影响UV ≥ 200 | [1%, +∞] | (0%, 100%] |
视频播放异常次数 | [1%, +∞] | 5min: [15, +∞] 1h: [200, +∞] | ||
视频播放异常影响UV | [1%, +∞] | 5min: [15, +∞] 1h: [200, +∞] | ||
页面元素渲染异常 | 页面元素渲染异常率 | 5min 周期:页面元素渲染异常影响UV ≥ 10 1h 周期:页面元素渲染异常影响UV ≥ 200 | [1%, +∞] | (0%, 100%] |
页面元素渲染异常次数 | [1%, +∞] | 5min: [10, +∞] 1h: [200, +∞] | ||
页面元素渲染异常影响UV | [1%, +∞] | 5min: [10, +∞] 1h: [200, +∞] | ||
冷启动耗时 | 冷启动耗时 | 小程序PV:[3000, +∞) 小程序UV:[1000, +∞) 冷启动耗时:(1000, +∞) 冷启动耗时劣化 ≥ 50ms 且非框架层策略变更影响(如预加载率,小程序有包率) | [1%, +∞] | (1000, +∞] |
冷启动打开率 | 冷启动打开率 | 小程序PV:[3000, +∞) 小程序UV:[1000, +∞) 冷启动打开率:(0, 1] 冷启动耗时劣化 ≥ 3% 且非框架层策略变更影响(如预加载率,小程序有包率) | [3%, +∞] | [0%, 100%] |
冷启动流失人数 | (0, +∞) | (0, +∞) | (0, +∞) |