# Unity WebGL小游戏适配方案性能标准 ## 为什么需要性能评测标准? 性能评测标准希望能引导开发者优化相关性能数据,提升用户体验。 ## 开发者需要关注哪些性能指标 从小游戏的运行周期来看,主要由启动和运行两个阶段产生性能问题。 启动阶段:启动时长,该数据将显著影响用户打开留存率 运行阶段:内存峰值、流畅度、CPU占用、网络等 其他兼容性问题,包括逻辑异常、黑屏等严重问题 ## 评测标准细则 ### 性能基线 机型档位 | 能力 |Android参考机型 |iOS参考机型 | | --- | --- |--- | | 高档 |⼩⽶10(⾼通骁⻰865) |iPhone11| | 中档 |VIVO S7(⾼通骁⻰765G) 红米k30|iPhoneX| | 低档 |OPPO r9s(通骁⻰625) |iPhone7/8| 指标与测量方法 Unity小游戏的启动可参考[启动流程与时序](Startup.md) | |定义|测量方法| | --- | --- |--- | | 首资源包 | 游戏首个data资源文件|位于导出目录/webgl/md5.webgl.data.unityweb.bin.txt, CDN使用gzip压缩 | WASM代码 | 游戏代码压缩包|位于导出目录/minigame/wasmcode/md5.webgl.wasm.code.unityweb.wasm.br, CDN使用gzip压缩 | 核心资源 |除首资源包外进入游戏核心玩法所需的资源量|业务自定下载,通常为AssetBundle | callmain |引擎和首场景(Loading)初始化 |通过timelog,或日志查看“callMain耗时” | 游戏初始化完成 |引擎和手场景完成,出现首个业务场景|通过timelog, 或日志查看“游戏启动耗时” | 游戏可交互完成 |游戏核心场景完成|业务自定义,典型地:休闲游戏为核心玩法,RPG游戏为创角 | 内存 | 内存峰值 | 进程内存峰值,测量方法请参考[优化Unity WebGL的内存](OptimizationMemory.md) | 帧率 | 核心玩法的平均帧率 | 测量5分钟以上游戏核心玩法帧率,取平均值 ### 评测工具 启动性能: 使用网络模拟工具1MB/s条件,使用Unity适配提供TimeLog窗口或运行日志获取性能数据。 运行性能: 使用PerfDog测试,PerfDog记录性能数据并上传,取平均值,每种机型测试3组数据再取平均,内存峰值取最大值。 ### 代码与资源体积 | 能力 |下载量 | | --- | --- | | 首包资源(gzip压缩后) |<5M | | WASM代码(br压缩后) |<5M | | 核心玩法资源 |<30MB| ### Android 评测标准 | |高档机 | 中档机|低档机| | --- | --- |--- |--- | | 首资源包下载 |<3s |<4s |<5s | | callmain |<3s |<5s |<7s | | 游戏初始化完成 |<8s |<10s |<12s | | 游戏可交互完成 |<12s|<15s | <20s | 运行性能 | |高档机 | 中档机|低档机| | --- | --- |--- |--- | | 内存 |<1.5G |<1.2G |<1G | | 帧率 |>50 |>40 |>30 | ### iOS 评测标准 | |高档机 | 中档机|低档机| | --- | --- |--- |--- | | 首资源包下载 |<3s |<4s |<5s | | callmain |<2s |<4s |<5s | | 游戏初始化完成 |<6s |<8s |<10s | | 游戏可交互完成 |<10s|<12s | <15s | 运行性能 | |高档机 | 中档机|低档机| | --- | --- |--- |--- | | 内存 |<1.4G |<1.2G |<800MB | | 帧率 |>50 |>40 |>30 |