# 启动优化最佳实践

优化小游戏的启动性能, 很明显需要降低启动时序中的各个步骤耗时。

我们接下来探讨开发者常见的优化手段。

# 精简首包资源

小游戏目前所有分包总大小限制不超过20M(开通虚拟支付后的小游戏不超过30M),首包大小限制不超过4M。精简首包为小游戏启动最为重要的手段,因为很显然其大小会影响下载时长,对于首次冷启动的玩家的影响最大。因此,我们需要精简其内容:

  • 使用资源压缩、文件合并(小文件合并,图集等)的方式降低资源占用量。
  • 减少不必要的资源,通常只保留首屏依赖的少量资源。

# 合理使用分包加载

对于代码量过大的项目,一方面由于小游戏包体大小限制需要分包,另一方面合理分包对于启动也有很重要的意义。因为如此做开发者就能减少启动时需要下载的内容,既可以是普通资源,也可以是代码。

# 引擎插件能力

当小游戏首次启动时,如果本地已经存在同类别游戏引擎插件,可直接复用或可通过增量下载的方式快速下载,从而提升启动速度。引擎插件的详细介绍可以查阅《游戏引擎插件》

# 并行下载能力

对于使用了代码分包能力的小游戏,可以考虑在启动流程中使用网络I/O去提前下载游戏所需要的分包资源,减少用户后续等待分包资源下载的时间,缩短用户进入游戏核心玩法的耗时。详细介绍可以查阅并行下载能力

# 降低首屏渲染所需要资源

开发者应该降低首屏的复杂度,既包含初始业务代码逻辑与资源。我们发现许多小游戏启动过慢的原因在于初始资源过于复杂,比如初始画面的资源需要从远程CDN获取,这对于网络状况较差的玩家会出现明显的黑屏闪烁,体验极为糟糕。因此常见的做法是降低首屏资源的复杂度,尽量将资源置于首包内。

# 尽快渲染

所谓的尽快渲染,指的是缩短业务代码注入完成到首屏渲染指令的时间。因此除了前面提到的优化手段外,还可以:

  • 减少初始代码大小,降低代码注入时间
  • 简化首屏逻辑,比如不依赖第三方引擎进行轻量渲染