测速系统

​小程序·测速系统开始内测。测速系统旨在帮助开发者简单方便的测速网络性能、渲染/加载性能等。 测速结果数据支持地域、运营商、系统、网络类型等关键维度交叉分析,支持分钟级数据实时查看。

开通白名单

​测速功能目前在内测阶段,需要找微信官方人员申请白名单使用。

申请上报id

在开通白名单后,可以在 mp 后台(mp.weixin.qq.com)的 : "开发" -> "运维中心" -> "自定义测速" 中找到相应的界面。

img

点击新建可以新建 ID 。目前的 key 主要有两种:

网络类: 包含维度 操作系统、运营商、网络类型、地区。 主要用来针对网络相关的耗时测量,如网络api耗时、云调用耗时、网络数据读写耗时等。

加载/渲染类:包含维度 操作系统、机型。可以用来测量页面切换耗时、组件渲染耗时等。

目前内测阶段每个类别限自定义 20 个 ID 。

img

新建后,可以看到上报使用的 ID 。

img

代码上报

mp后台申请到自定义的id后,调用 wx.reportPerformance 可以完成上报:

上报方法1: 使用canIUse进行判断

// * 需要使用 canIUse 判断接口是否可用
if (wx.canIUse('reportPerformance')) {
  wx.reportPerformance(id, val)
}

上报方法2:使用compareVersion进行判断

// * 需要先使用compareVersion判断接口是否可用
const sdkVersion = wx.getSystemInfoSync().SDKVersion
if (compareVersion(sdkVersion, '2.9.2') >= 0) {
  wx.reportPerformance(id, val)
}

​id和val均为uint32类型,其中id为mp后台申请的key,val为本次要上报的耗时数值(由开发者自行计算)。接口调用需要基础库的版本号高于 2.9.2,否则在一些低版本基础库可能报错。

(compareVersion 定义)

数据观察

目前线上数据大概会有10分钟数据时延。然后可以在自定义测速的界面完成指标的观察,目前内测阶段数据保留 7 天。可以按照 1 分钟 - 1 小时等不同的时间粒度进行聚合。

目前对于一个指标可以观察到两条曲线,分别为上报次数曲线和平均值曲线。

img

Q&A

Q : 测速系统可以在哪些场景发挥作用?

A : 可以测量网络类指标(如网络调用/云调用耗时、网络数据读写速度等)和非网络类指标(页面切换加载速度、组件渲染速度等)。可以查看这些指标在不同维度下的数量分布和性能差异。在一些计算视频首屏时延、帧率等场景也可以发挥作用。

Q :上报API需要的基础库版本是多少?

A : 需要基础库版本 2.9.2 以上。在一些低版本基础库上可能报错,后续会支持用 canIUse 接口来进行判断。

Q :为什么我的测速数据中会有毛刺点?

A : 客户端场景复杂,为了让指标显示更准确,需要开发者在上报时过滤掉部分可能影响总体指标的异常值。

Q: 系统是否可以再测试版使用?上报的时延大概是多少?数据保存的时间是多久?

A : 可以在测试版使用,目前上报的时延为 15 分钟左右。数据会保存 7 天。

Q: 测速监控是否支持报警功能?

A : 目前不支持,后续会规划排期实现。

Q: 我可以定义多少自定义 ID?

A : 单个小程序每个类别可以定义 20 个 ID。

Q: 如果有问题或者需求应该反馈给谁?

A : 社区私信反馈给 binnie