codecamp

支付宝小程序扩展能力 附录 2:商家自审核工具

概述

针对上述可优化点的检测,小程序质量团队开发性能分析工具——商家自审核,协助广大开发者对小程序进行性能缺陷的识别和分析。

前提条件

  • 小程序开发者工具(IDE)v1.12 及以上,请点此下载
  • 支付宝 10.1.85 及以上版本;
  • 该工具仅支持 Android 设备,暂不支持 iOS 设备。

使用指南

上传小程序

在小程序开发者工具(IDE)中点击右上角 上传 按钮,等待上传任务完成。

img

进入商家自审核工具

  1. 小程序上传成功后,弹出质量自审核入口。 img

  1. 点击上图中的 这里 进入商家自审核任务页面,进入商家自审核,此时页面处于生成最新上传小程序二维码状态,用户需要等待一段时间。img

  1. 二维码生成完成,用户可以使用 Android 设备,启动支付宝扫码开始测试。

img

扫码开始测试

  1. 进入商家自检测任务页面选择待测试小程序生成二维码。

  1. 使用 Android 设备扫描二维码。

  1. 二维码状态变为已连接状态。

img

  1. 在 Android 设备上操作被测试小程序,IDE 上质量自审核工具分数会从最初的基础分开始随着用户操作不断上涨。所以我们鼓励用户进入尽可能多的页面,操作尽可能多的小程序能力。
  2. 查看性能数据。
    • 包大小:标准为包大小不超过 1M,包越小,得分越高;
    • jsapi 调用时间过长:要求 jsapi 调用耗时不超过 200ms, 网络请求耗时不超过 600ms;
    • jsapi 调用次数过多:要求同一个 jsapi 在一个页面调用次数不超过 3 次;
    • 商家自审核工具支持 Timeline 工具,用于页面性能分析;
    • 首屏时间:支付宝小程序要求冷启动条件下,首屏时间小于 2200ms;

支持Timeline

商家自审核工具中的 Timeline 可用于对页面性能进行分析,将显示各接口 jsapi 的使用详情。

如下图所示,小程序页面运行过程中的 jsapi 调用和 jsapi 调用异常,都会显示出来,数据可以导出到 excel 中。

img

案例 Case

对某小程序单页面进行调试分析,结果如下图呈现 :

img

可优化项如下,对小程序页面进行调优时,可以优先从以下方面着手:

  • getSystemInfo API 接口为 sync 同步调用,最佳实践建议改为异步调用;
  • getTinyLocalStorage API 接口为 sync 同步调用,最佳实践建议改为异步调用;
  • 单页面 getTinyLocalStorage API 接口调用时间 270ms(≥200ms);单页面 mtop API 接口请求调用耗时 1345ms (≥600ms);
  • 单页面 getRunScene API 接口调用次数 >3 次,且存在多次调用,需要优化。
支付宝小程序扩展能力 附录 1:优化 setData 逻辑方案明细
支付宝小程序扩展能力 附录 3:性能调试工具
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

支付宝小程序开发文档

支付宝小程序 快速示例

支付宝小程序 小程序快速示例

支付宝小程序 框架

支付宝小程序 组件

支付宝小程序组件 基础组件

支付宝小程序组件 无障碍访问

支付宝小程序 扩展组件

支付宝小程序扩展组件 UI组件

支付宝小程序 API

支付宝小程序 开发工具

支付宝小程序 云服务

支付宝小程序 Serverless

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }