Version: 1.4
语言 : 中文
启动速度优化
首包数据文件精简

小游戏启动分析

小游戏启动时间主要受以下三点影响:

  • 下载小游戏首包数据文件
  • 下载和编译 WASM 代码
  • 引擎初始化和首场景加载

因此,通过精简首场景、压缩资源和简化首帧代码逻辑,用户可以大幅减少下载首包文件和加载首场景的时间。引擎初始化时间则需要通过优化引擎本身来降低, 首包文件大小也能通过引擎的优化降低一部分。

引擎启动前的时间主要受首包数据文件和 WASM 代码文件大小的影响。以下章节中详细介绍了首包文件的构成以及如何减小文件大小:

此外, 开启 CDN 的 gzip/br 功能,可以明显降低网络数据传输量,减少文件的下载时间。此外开启 CDN 压缩支持对后续资源的下载也会有帮助。

引擎初始化和首场景加载

下图是 BoatAttack 示例小游戏在启动阶段的耗时分布。

从数据来看,有以下几点需要注意;

  • C# 代码占用启动时间较多,其中包括 C# 类对象的构造函数,以及 MonoBehaviour 的 Awake、Start 等函数调用时间;
  • 小游戏是单线程执行,没有独立的渲染线程,因此纹理、模型的 GPU 上传,Shader 的编译都会影响启动时间;
  • Shader 解析比较耗时,其中包括 keyword 的解析,变体数据的解压和加载等。
启动速度优化
首包数据文件精简