微信小程序性能指标
WEB 性能指标
Google PSI 通过 “首次显示内容所需时间(FCP)”,“首次输入延迟(FID)”,“最大内容渲染:显示最大内容元素所需时间(LCP)”和 “累计布局偏移:反应网站的视觉稳定度 ”(CLS)度量标准数据衡量移动和台式设备上页面的性能。
微信官方性能指标
- 首屏时间: 不超过 5 秒
- 渲染时间: 不超过 500ms
- 脚本执行时间: 一个执行周期内脚本运行时间不超过 1 秒
- setData调用频率: 每秒调用setData的次数不超过 20 次
- setData数据大小: 数据在JSON.stringify后不超过 256KB
- WXML节点数: 少于 1000 个,节点树深度少于 30 层,子节点数不大于 60 个
- 图片缓存: 所有图片均开启 HTTP 缓存
- 图片大小: 图片宽高乘积 <= 实际显示宽高乘积 * (设备像素比 ^ 2)
- 请求耗时: 所有网络请求都在 1 秒内返回结果
- 网络请求数: 通过wx.request发起的耗时超过 300ms 的请求并发数不超过 10 个
- 图片请求数: 同域名耗时超过 100ms 的图片请求并发数不超过 20 个
- 网络请求缓存: 3 分钟以内同一个url请求不出现两次回包大于 128KB 且一模一样的内容
获取小程序性能相关信息
- route: 路由性能
- appLaunch: 小程序启动耗时
- firstRender: 页面首次渲染耗时
- evaluateScript: 注入脚本耗时
- request: 接口耗时(api、params、duration)
- onMemoryWarningLevel: 内存警告等级
5:TRIM_MEMORY_RUNNING_MODERATE
10:TRIM_MEMORY_RUNNING_LOW
15:TRIM_MEMORY_RUNNING_CRITICAL - path: 路径
- systeminfo: 系统信息
- network: 网络类型
- userinfo: 用户信息
- setData: 耗时/数量
- wxApiDuration: 微信接口耗时
- version: 基础库版本
体验评分标准
- 首屏渲染时间: <5s
- 平均请求耗时: <300ms
- request并发: <10
- 图片请求并发: <10
- setData 频率: <20/s
- 内存警告:无
- 脚本报错数量:无
设计思路
重写 App、Page、wx、request、Component 对象;获取 wx api 耗时、路由信息、内存性能警告、基础库 2.11.3 以上支持(获取路由性能、小程序启动耗时、页面首次渲染耗时、注入脚本耗时)。目的在于更细致的对页面关键节点作测速统计,做针对性优化,配合小程序后台/工具的宏观测试。服务端可通过 operation.getPerformance 获取:1(启动总耗时), 2(下载耗时),3(初次渲染耗时)
参考文档
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/performance/wx.getPerformance.html
https://developers.weixin.qq.com/miniprogram/dev/framework/audits/scoring.html
https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/operation/operation.getPerformance.html