Skip to content

使用Android CPU Profiler性能调优

  1. 转换导出插件勾选"Profiling-funcs", 请勿使用Development(该模式将极大降低性能)。 发布上线版本请务必关闭该选项!

  2. 在Android微信小游戏打开调试进行录制

  3. 停止性能数据录制

    与步骤1相似,在相同的菜单中选择Stop CPU Profile

  4. 传输录制文件到PC

    录制结束后,Android会生成一份xxx.cpuprofile,该文件格式可以使用chrome进行解析。 因此我们需要将录制后的文件传输到PC使用chrome进行分析。 文件路径通常为:Android/data/com.tencent.mm/MicroMsg/appbrand/trace

  5. 利用PC(Windows/Mac)的Edge/Chrome加载数据

    以Edge为例:浏览器菜单打开"更多工具-开发人员工具-右上角...-更多工具-JavaScript探测器",然后点击加载前面导出的cpuprofile文件即可。

    视图有多种方式,可选择"图表"(Chart)分析每一帧游戏函数耗时情况

  6. 使用JavaScriptProfile进行数据分析

注意:

  1. 编译版本仅当导出勾选Profiling-funcs(推荐)或Development时才能在函数堆栈中看到可读函数名。
  2. 特殊情况下,如果游戏勾选Profiling-funcs会导致代码包过大,那么不要使用此选项。此时得到的Profile中函数为数字ID,有两种做法进行解读:
    • 2.1 通过webgl导出目录下的symbols文件对照映射
    • 2.2 通过替换脚本对cpuprofile进行自动映射到真实函数。使用方式:python update_v8_wasm_profile.py $cpuprofile $symbol
  3. 如希望能从游戏启动立即抓取profile,请在game.js末尾代码稍作修改:
    js
    const gl = GameGlobal.canvas.getContext('webgl') 
        gl.clear(gl.COLOR_BUFFER_BIT);
        setTimeout(() => {
        gameManager.startGame();
        GameGlobal.manager = gameManager;
     }, 10000);
    修改后,游戏启动将会有10s黑屏,可在此期间打开调试。
  4. 最新版本Chrome/Edge已经将Javascript Profiler默认隐藏,你可以使用微信开发者工具查看.cpuprofiler,或是通过以下方式将它在浏览器显示出来: image

Released under the MIT License.