性能
FMP(首次有意义绘制)
定义: 小程序首次有意义绘制(First Meaningful Paint)耗时。
得分标准: FMP 耗时 ≤ 1500ms
优化建议:
- 按优先级加载首屏内容,优先展示关键部分。
- 缓存高优先级数据,减少首屏请求延迟。
- 预加载关键资源,避免等待 API 回调。
- 降低一次性渲染数据量,优化计算逻辑。
渲染时间
定义: 页面首次渲染或因数据变化导致的重新渲染时间。
得分标准: 渲染时间 ≤ 500ms
优化建议:
- 减少
setData传输量,降低setData调用频率。 - 避免同时渲染大面积内容,优化列表渲染(如虚拟列表)。
- 减少复杂计算。
页面最低帧率
定义: 页面最低帧率不得低于 30FPS,否则可能会出现卡顿现象。
得分标准: ≥30 FPS
优化建议:
- 使用
RJS来处理高频的绘图需求。 - 将一些视图层需要计算的能力放在
SJS中操作。
脚本执行时间
定义: JS 脚本在单次同步执行中的耗时。
得分标准: 单次执行 ≤ 1 秒
优化建议:
- 查看业务代码,确实是否执行了耗时过长的脚本
- 拆分大任务,使用异步分批执行。
- 避免阻塞主线程的同步操作,如大数据处理。
setData 调用频率
定义: setData 过于频繁可能会造成界面卡顿。
得分标准: ≤20 次/秒
优化建议:
- 合并
setData调用,避免无效更新。 - 仅更新必要数据,减少
setData传输数据量。
setData 数据大小
定义: setData 传输数据过大会导致 UI 更新延迟。
得分标准: ≤50KB(JSON.stringify 后)
优化建议:
- 仅传输必要字段,避免传输整个对象。
- 使用
setData({a.b.c:1 })方式,局部更新数据。
TYML 节点数
定义: 页面 DOM 结构过大影响渲染性能。
得分标准: ≤1000 个节点,树深度 ≤30 层,子节点数 ≤60
优化建议:
- 减少 DOM 层级,避免深层嵌套。
- 控制每个节点的子元素数量。
网络请求耗时
定义: 服务器响应时间过长会影响首屏加载速度。
得分标准: ≤1000ms
优化建议:
- 服务器端优化查询速度,使用缓存。
- 压缩返回数据,减少
JSON体积。
网络并发请求数
定义: 并发网络请求过多可能触发小程序请求限制。
得分标准: 每秒并发超 300ms 请求数 ≤10
优化建议:
- 合并 API 请求,减少不必要的并发请求。
网络图片请求数
定义: 图片请求过多可能导致加载变慢。
得分标准: ≤20 次/秒
优化建议:
- 采用懒加载,避免一次性加载所有图片。
- 合理使用 CSS
background-image或雪碧图。
网络图片大小
定义: 图片过大会增加加载时间,影响首屏渲染。
得分标准: 单张 ≤300KB
优化建议:
- 压缩图片。
- 使用 CDN 加速图片加载。
小程序通道交互频次
定义: 过于频繁的调用 Kit 能力 可能会导致性能瓶颈。
得分标准: ≤20 次/秒
优化建议:
- 合理管理
KitAPI 调用次数,避免冗余操作。
小程序包大小
定义: 小程序源码包过大影响加载速度。
得分标准: 未分包时 ≤2MB
优化建议:
- 配置分包,合理拆分代码模块。
- 静态资源采用 CDN 加载,减少源码包体积。
- 无用文件、函数、样式剔除。