Unity WebGL小游戏适配方案性能标准
为什么需要性能评测标准?
性能评测标准希望能引导开发者优化相关性能数据,提升用户体验。
开发者需要关注哪些性能指标
从小游戏的运行周期来看,主要由启动和运行两个阶段产生性能问题。
启动阶段:启动时长,该数据将显著影响用户打开留存率 运行阶段:内存峰值、流畅度、CPU占用、网络等 其他兼容性问题,包括逻辑异常、黑屏等严重问题
评测标准细则
性能基线
机型档位
能力 | Android参考机型 | iOS参考机型 |
---|---|---|
高档 | ⼩⽶10(⾼通骁⻰865) | iPhone13 |
中档 | VIVO S7(⾼通骁⻰765G) 红米k30 | iPhone11 |
低档 | OPPO r9s(通骁⻰625) | iPhone7/8/X |
指标与测量方法
Unity小游戏的启动可参考启动流程与时序
定义 | 测量方法 | |
---|---|---|
首资源包 | 游戏首个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的内存 |
帧率 | 核心玩法的平均帧率 | 测量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 |