# 性能诊断工具

## 简介
为了协助开发者更精确地定位问题并提供优化建议，我们推出了微信小游戏性能诊断工具用于查看 `开发版/体验版` 运行时的网络和接口调用、运行性能以及启动耗时等信息，从而更深入地了解游戏性能并进行相应优化。

## 开始使用
微信小游戏诊断工具兼容 `微信开发者工具`、`安卓`、`iOS` 平台，有两种启用方式。
- 「推荐」方式一：当需要检测 `安卓` 和 `iOS` 真机时，推荐通过 `开发调试` 菜单开启，通过此方式检测可录制小游戏启动时序图。
- 方式二：当需要检测 `微信开发者工具` 和 `PC微信时`，推荐通过 `微信开发者工具插件Audits` 开启。

### 「推荐」方式一：开发调试
运行环境要求：
- 基础库使用 `3.4.4` 或以上版本
- iOS 客户端版本 >= 8.0.47
- Android 客户端版本 >= 8.0.48

1. 开发/体验版小游戏 `右上角菜单-开发调试-开启Audits`
  支持两种检测模式
  - 重启并自动开始检测：自动退出小游戏，在下次启动小游戏时自动开始检测
  - 立即开始检测：不退出小游戏，从当前游戏进度开始检测

    ![](https://res8.wxqcloud.qq.com.cn/wxdoc/52dad1bd-92b2-4e7c-9e17-3280e7a6d4a4.png)
    ![](https://res8.wxqcloud.qq.com.cn/wxdoc/46e19d1a-36ec-4787-b907-233d06f17acb.png)
    ![](https://res8.wxqcloud.qq.com.cn/wxdoc/76796b87-5760-453a-80d9-42e03f729532.png)


2. 选择 `重启并自动开始检测`，可下次打开前删除此小游戏包，下次启动小游戏时，从点击小游戏开始获取启动耗时数据。
  - 在下次打开前删除此小游戏包：测试本地无缓存时的启动速度
  - 在下次打开前不删除此小游戏包：测试本地有缓存时的启动速度

    ![](https://res8.wxqcloud.qq.com.cn/wxdoc/dc0c6d4c-63ef-4ae3-9d97-8450abf154ed.png)


3. 当完成对所需分析的游戏场景的检测后，通过 `右上角菜单-开发调试-关闭Audits` 点击结束检测并上传本次诊断报告
4. 前往 `MP后台-研发工具箱-性能诊断-性能评测` 查看本次诊断详细报告

### 方式二：微信开发者工具插件Audits
- 下载并安装 `1.06.2401080` 或以上的[微信开发者工具 (Nightly Build)](/miniprogram/dev/devtools/log.md)
- 基础库需要使用 `3.3.0` 或以上版本。

1. 打开微信开发者工具，导入需要诊断的小游戏项目。
2. 项目详情 -> 本地设置，切换基础库到 `3.3.0` 或以上版本。
3. 在开发者工具调试器区域切换到 `Audits` 面板。
4. 通过 `检测模式` 选择所需测试的平台。
- 当 `检测模式` 选择 `iOS / Android真机` 时，可通过 `是否自动开始检测` 选择是游戏启动后是否自动开始检测逻辑。
- 当 `检测模式` 选择 `开发者工具` 时，仅支持自动开始检测，因此会隐藏 `是否自动开始检测` 选项。
5. 点击 `开始检测` 会向 `game.json` 增加检测相关配置，自动编译或手动编译可运行开启检测后的小游戏。
- 检测模式为 `开发者工具` 时，开发者工具模拟器自动刷新后即可运行监测程序。
- 检测模式为 `iOS / Android真机` 时，开发者工具自动编译并拉起预览二维码，使用真机扫码即可在真机运行监测程序。

  **注意：** 拉起预览二维码时，会切换到构建Tab，等待真机扫码完成后，可点击 `调试器` 切换回 `Audits` 插件面板。
  ![](https://res8.wxqcloud.qq.com.cn/wxdoc/3b53ab98-f90f-4aa8-a1dc-daff8d128f3d.png)

6. 根据所选 `检测模式` 在 **对应的平台上完成检测** 后，`Audits` 面板将自动显示本次诊断报告。
- 检测模式为 `开发者工具` 时，仅支持自动开始检测。通过 `Audits` 插件面板 `结束检测` 完成检测并查看报告。
- 检测模式为 `iOS / Android真机` 时，按以下步骤操作完成检测。

  图1: 若 `Audits` 插件中 `是否自动开始检测` 选择 `否`，需要通过 `开始录制` 操作按钮开始收集数据。

  图2: 若运行时已开始收集数据，此时操作按钮切换为 `录制中`

  图3: 当完成对所需分析的游戏场景的检测后，再次点击 `录制中` 可结束录制并上传诊断数据

  图4: 点击 `上传数据` 确认上传后，可在 `Audits插件` 面板中查看本次诊断报告

  ![](https://res8.wxqcloud.qq.com.cn/wxdoc/380fb62f-7c7b-4341-85e8-4ec24b2668e6.png)
  ![](https://res8.wxqcloud.qq.com.cn/wxdoc/e531c06e-488d-41b2-8113-4df9583da8ad.png)
  ![](https://res8.wxqcloud.qq.com.cn/wxdoc/4ea5a8c0-2a3f-451e-b2b1-69e11a24f633.png)
  ![](https://res8.wxqcloud.qq.com.cn/wxdoc/ff50f064-e4c6-4e2e-89f6-806dfa52155d.png)

7. 检测完成后，点击 `查看详细报告` 可前往 `MP后台` 查看本次检测的详细报告。点击 `清空体验评分` 回到面板首页，自动重置 `game.json` 的检测配置，等待开启下一次检测。`Audits` 插件仅支持查看`性能清单`，可前往MP后台查看`运行监控`。
![](https://res8.wxqcloud.qq.com.cn/wxdoc/1441e529-40d9-4d2e-b88c-d0ddea2cfb92.png)

### 查看详细报告
入口 `MP-研发工具箱-性能诊断-性能评测`，或点击 `微信开发者工具插件Audits` 插件报告页，操作区中的 `查看详细报告`

1. 可按平台、评测人员或评测ID查询本次报告

2. 点击 `查看报告` 查看本次报告性能清单

![](https://res8.wxqcloud.qq.com.cn/wxdoc/d916660e-72b3-4058-a971-94cd9cbcd4d3.png)

3. 当通过 `方式一` 使用诊断工具时，可获取到本次启动的启动时序图
![](https://res8.wxqcloud.qq.com.cn/wxdoc/54fed1f1-2428-4cf3-9788-b88e308466ee.png)

## 注意事项

1. 测试时发现部分游戏在使用诊断工具后游戏逻辑会产生异常，例如 `wx.request` 发送的请求异常、`fillText` 绘制文字导致UI闪烁等。平台会持续完善诊断工具的稳定性，若您的游戏在使用检测工具后出现异常，也可联系 小助手 协助：

  ![](https://res8.wxqcloud.qq.com.cn/wxdoc/a5e6eea2-3f21-4705-8e02-5a5115f41bc8.png)

1. 小游戏诊断工具仅支持在激活检测功能后对 `开发版/体验版` 进行检测，即使激活了检测功能，线上版本小游戏也不会执行`检测运行时`，不过也建议在上线前通过`微信开发者工具Audits插件` **关闭检测能力**。
