优化启动性能
一、 概述
提升小游戏启动对于用户新进留存具有非常重要的价值。要提升小游戏的启动速度,我们需要先理解小游戏启动时序.
二、 小游戏启动时序
启动过程分为代码包加载与首屏渲染两个阶段。从玩家点击游戏到看到游戏画面时会经历一系列的加载动作, 其中包含小游戏框架本身的准备与开发者的初始业务逻辑.
三、 优化方案
优化小游戏的启动性能, 很明显需要降低启动时序中的各个步骤耗时。我们接下来探讨开发者常见的优化手段。
1. 精简首包资源
小游戏目前所有分包总大小限制不超过30M,首包大小限制不超过4M。简首包为小游戏启动最为重要的手段,因为很显然其大小会影响下载时长,对于首次冷启动的玩家的影响最大。因此,我们需要精简其内容:
- 使用资源压缩、文件合并(小文件合并,图集等)的方式降低资源占用量。
- 减少不必要的资源,通常只保留首屏依赖的少量资源。
2.合理使用分包加载
对于代码量过大的项目,一方面由于小游戏包体大小限制需要分包,另一方面合理分包对于启动也有很重要的意义。因为如此做开发者就能减少启动时需要下载的内容,既可以是普通资源,也可以是代码。
3.并行下载能力
对于使用了代码分包能力的小游戏,可以考虑在启动流程中使用网络 I/O 去提前下载游戏所需要的分包资源,减少用户后续等待分包资源下载的时间,缩短用户进入游戏核心玩法的耗时。
4.降低首屏渲染所需要资源
开发者应该降低首屏的复杂度,既包含初始业务代码逻辑与资源。我们发现许多小游戏启动过慢的原因在于初始资源过于复杂,比如初始画面的资源需要从远程 CDN 获取,这对于网络状况较差的玩家会出现明显的黑屏闪烁,体验极为糟糕。因此常见的做法是降低首屏资源的复杂度,尽量将资源置于首包内。
5.尽快渲染
所谓的尽快渲染,指的是缩短业务代码注入完成到首屏渲染指令的时间。因此除了前面提到的优化手段外,还可以:
- 减少初始代码大小,降低代码注入时间
- 简化首屏逻辑,比如不依赖第三方引擎进行轻量渲染
