介绍
测速系统旨在帮助开发者简单方便的测速网络性能、渲染/加载性能等。 测速结果数据支持地域、运营商、系统、网络类型等关键维度交叉分析,支持分钟级数据实时查看。
代码
// * 需要先判断接口是否可用
const sdkVersion = wx.getSystemInfoSync().SDKVersion
if (compareVersion(sdkVersion, '2.9.2') >= 0) {
wx.reportPerformance(id, val)
}
参数 | 类型 |
---|---|
id | uint32 |
val | uint32 |
关于__compareVersion__定义参考官方文档版本号比较。
用法
刚开始看到这个代码有点懵,不太理解干嘛用的,经过测试才理解。
用法很简单,id需要和后台的对应,val对应的是自己定义的数值,比如我们可以在请求接口之前先在代码中记录一下当前的时间,然后等接口请求成功后再计算时间差,把这个时间差上报即可。
数据观察
目前最大会有 15 分钟数据时延。然后可以在自定义测速的界面完成指标的观察,目前内测阶段数据保留 7 天。可以按照 1 分钟 - 1 小时等不同的时间粒度进行聚合。
目前对于一个指标可以观察到两条曲线,分别为__上报次数曲线__和__平均值曲线__。
后台页面
登陆小程序后台->开发->运维中心->小程序测速。
新增配置
网络类:
包含维度 操作系统、运营商、网络类型、地区。 主要用来针对网络相关的耗时测量,如网络api耗时、云调用耗时、网络数据读写耗时等。
加载/渲染类:
包含维度 操作系统、机型(暂未开放)。可以用来测量页面切换耗时、组件渲染耗时等。
这里也ID的自增也比较另类,第一个是1001,第二个是2002,不知道是出于什么目的设计的,之前没怎么注意过。
限制
目前内测阶段每个类别限自定义 20 个 ID 。
FAQ
Q:测速系统可以在哪些场景发挥作用?
A:可以测量网络类指标(如网络调用/云调用耗时、网络数据读写速度等)和非网络类指标(页面切换加载速度、组件渲染速度等)。可以查看这些指标在不同维度下的数量分布和性能差异。在一些计算视频首屏时延、帧率等场景也可以发挥作用。Q:上报API需要的基础库版本是多少?
A:需要基础库版本2.9.2以上。在一些低版本基础库上可能报错,后续会支持用canIUse接口来进行判断。Q:为什么我的测速数据中会有毛刺点?
A:客户端场景复杂,为了让指标显示更准确,需要开发者在上报时过滤掉部分可能影响总体指标的异常值。Q:系统是否可以再测试版使用?上报的时延大概是多少?数据保存的时间是多久?
A:可以在测试版使用,目前上报的时延为15分钟左右。数据会保存7天。Q:测速监控是否支持报警功能?
A:目前不支持,后续会规划排期实现。Q:我可以定义多少自定义ID?
A:单个小程序每个类别可以定义20个ID。Q:如果有问题或者需求应该反馈给谁?
A:我不会告诉你该找哪个小姐姐~
PS:以上大部分文档内容来自官方整理。