为了帮助开发者了解小游戏中的JavaScript性能瓶颈,我们在云测试服务中提供了JavaScript CPU Profile能力。 目前该能力在默认多设备和指定设备两种测试类型下的使用方式不一样,具体差异如下:

测试类型 开启方式 Profile时长 支持系统
指定设备 GameGlobal.startCpuProfile() 不超过3分钟 iOS、Android
默认多设备 提交测试时勾选"导出CPU Profile" 测试全程 仅Android

注意:开启Profile可能导致测试过程中的内存占用增加,且有小概率导致小游戏异常退出。

# 1. 开启JavaScript CPU Profile

# 1.1 指定设备

在指定设备类型下,开发者需要在代码中注入GameGlobal.startCpuProfile()GameGlobal.stopCpuProfile()来开始和结束CPU Profile。

指定设备下的CPU Profile时间最长为3分钟。如果开始Profile后,3分钟内未结束,平台侧将自动结束,并输出CPU Profile文件。

开始JavaScript CPU Profile的示例代码如下:

// 开始 JavaScript CPU Profile
if ( typeof GameGlobal !== "undefined" && typeof GameGlobal.startCpuProfile !== "undefined" ) { 
    GameGlobal.startCpuProfile()
    console.log("开始JavaScript CPU Profile!")
}

结束JavaScript CPU Profile的示例代码如下:

// 结束 JavaScript CPU Profile
if ( typeof GameGlobal !== "undefined" && typeof GameGlobal.stopCpuProfile !== "undefined" ) { 
    GameGlobal.stopCpuProfile()
    console.log("结束JavaScript CPU Profile!")
}

备注:GameGlobal.startCpuProfile()GameGlobal.stopCpuProfile()仅在云测试环境下生效,不影响体验版或者现网环境下的游戏表现

# 1.2 默认多设备

在默认多设备的测试类型下,"提交测试"时在任务选项中勾选"导出CPU profile",即可开启CPU Profile。 该类型下仅支持Android系统下的CPU Profile,且测试全程均会执行Profile。

# 2. 查看CPU Profile结果

测试完成后,在"测试报告-详细报告-运行性能"下可以查看对CPU Profile文件的解析,也可以下载CPU Profile文件,导入微信开发者工具中查看。

# 2.1 测试报告中查看CPU Profile文件解析

如上图,点击"展开详细数据",可以查看对CPU Profile文件的解析数据。包含:

  • 单个函数独占执行时间Top10列表:单个函数不包含被调用函数的执行时间的top10函数信息列表
  • 单个函数总执行时间Top10列表:单个函数包含被调用函数的执行时间的top10函数信息列表
  • 录制过程函数执行独占时间Top10列表:整个运行过程中函数总的独占执行时间的top10函数信息列表
  • 录制过程函数执行总时间Top10列表:整个运行过程中函数总的执行时间的top10函数信息列表

# 2.2 导入微信开发者工具中查看

点击"下载cpu profile文件"链接,即可下载对应的文件,该文件可以导入微信开发者工具中查看详细的执行过程。 导入步骤如下:

  • 在微信开发者工具中的"调试器"下,选择"JavaScript Profiler"。如果没有该选项,点击右侧"┇"-"More Tools"-"JavaScript Profiler"选择。

  • 点击"Load"按钮,选择下载的CPU Profile文件即可。

  • 加载后的效果如下图所示: