# 启动优化最佳实践

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

![](https://res8.wxqcloud.qq.com.cn/wxdoc/bfa22884-e05f-4641-98cd-6f2688ae490b.png)

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

## 精简首包资源

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

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

## 合理使用分包加载

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

## 引擎插件能力

当小游戏首次启动时，如果本地已经存在同类别游戏引擎插件，可直接复用或可通过增量下载的方式快速下载，从而提升启动速度。引擎插件的详细介绍可以查阅[《游戏引擎插件》](/minigame/dev/guide/base-ability/game-engine-plugin)

## 并行下载能力

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

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

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

## 尽快渲染

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

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