高性能+模式
收藏
我的收藏注意
高性能+模式当前还处于公开测试阶段,可能存在不稳定性,如果开发者在适配和运行过程中遇到任何问题,请及时通过 OnCall 或联系客服通知我们,我们会协助开发者一起解决问题。
简介
iOS “高性能+” 模式是相对于当前“高性能”模式的一种升级模式,主要为了解决 iOS 系统严格的内存限制,以及部分 iOS 版本运行 WebGL2 渲染兼容性问题,而推出的一种更优的运行模式。
内存不足的表现:
性能数据
从内测阶段的数据来看,从高性能模式切换到高性能+模式后:
指标 | 优化效果 | 备注 |
游戏内存大小 | 降低 150 ~ 300 M | 视游戏复杂度而定 |
GPU 使用率 | 降低 30% | 视游戏复杂度而定 |
兼容性增强 |
| 渲染兼容性问题参见本文附录 |
当前在观察的数据
从内存空间、渲染兼容性以及运行效率这三个方面而言,高性能+模式均优于高性能模式。
当前之所以未将高性能方案直接全量替换为高性能+,是因为高性能+在 iOS 上采用双线程模式运行,会将游戏部分的渲染内存转移至抖音 App,致使抖音 App 的内存增加。这可能导致用户将抖音 App 切换至后台时,游戏进程的热缓存时间缩短。目前仍在观察其对用户数据的影响。若发现影响不大,平台或许会将高性能模式下架,并全量替换为高性能+模式。
运行环境要求
“高性能+”模式版本要求:
- •iOS 系统版本:>= 14.5
- •抖音软件版本:>= 32.7.0
- •客户端基础库版本:>= 3.54.0.0
- •开发者工具版本:>= 4.3.5
Unity 小游戏及普通小游戏相同。
如何打开高性能+模式
“高性能+”模式是“高性能”模式的特性升级,要开启“高性能+”模式请先保证游戏已经在“高性能”模式下正常运行。
- •“高性能+”模式开关:
在game.json中配置
enableIOSHighPerformanceModePlus
为true:- •判断是否开启“高性能+”方法:
普通小游戏、Unity 小游戏【方式一】:
观察 VConsole 颜色,红色的表示开启了高性能+。
普通小游戏【方式二】:
高性能+方案中,全局变量 GameGlobal.isIOSHighPerformanceModePlus 为 true。
console.log(GameGlobal.isIOSHighPerformanceModePlus) // true
API支持
在【高性能+】模式下支持的 API 数量,比【高性能】模式多,下列 API 在【高性能+】模式下已经可以正常使用的。
API名称 | 高性能+ 支持情况 |
request/pause/resumeMicrophone | 支持 |
createCamera | 支持 |
createFaceDetector | 支持 |
createHandDetector | 支持 |
video.paintTo | 支持 |
video.play | 支持 |
常见问题 QA
Q1. 高性能模式下暂不支持真机调试
A1. IDE 中的「真机调试」能力暂不支持高性能模式,使用该能力时请不要在 game.json 中配置 为高性能模式,并且调试中的性能数据无法作为运行时性能的参考。
Q2. 普通小游戏,js文件路径包含空格、%等特殊字符会加载失败
A2. 这个问题是平台 URL 解码的 bug,可以尝试去掉这些特殊字符,抖音版本 <= 33.0.0 版本上存在,抖音版本 >= 33.1.0 上会逐步放量修复解决这个问题。
Q3. 普通小游戏,高性能开关、高性能+开关,不同组合的表现是什么样的
A3. 参考下列排列组合:
【高性能】开关 | 【高性能+】开关 | 实际运行模式 |
关闭 | 关闭 | 原始模式 |
开启 | 关闭 | 高性能模式 |
关闭 | 开启 | 高性能+模式 |
开启 | 开启 | 高性能+模式 |
Q4. 渲染兼容问题
问题 | 详情 | 解决方案 |
WebGL2 |
| 针对iOS WKWebView存在的渲染问题,推荐使用高性能+模式来解决 |
| ||
卡顿、帧率低、卡死 |
| |
| ||
内存 |
|