# 性能优化

# 为什么需要性能优化?

游戏性能是创造良好用户体验的基本要素,新进活跃、留存、支付、在线时长等运营数据背后的核心点是在于用户的体验,游戏性能是最能影响用户体验的因素之一。当用户进入小游戏时,良好的启动性能可以减少用户初次进入的等待时间,让用户更快的看到游戏画面和更早地与游戏发生交互行为,能较大程度提升用户的留存率;良好的运行性能可以为用户提供一个绝佳的游戏体验环境,获得愉悦的游戏体验。

# 性能关乎用户新进转化

启动性能关乎到小游戏的用户能不能真正进入到游戏,如果游戏启动没有优化好,就需要很久才能看到游戏的画面。很有可能很多玩家在没有等到游戏加载完就已经产生了流失。
根据小游戏整体启动留存率分析,小游戏玩家的首屏打开留存率约为75%。这是什么意思呢,就是玩家从点击小游戏到能看到首屏渲染界面,大约有25%的玩家流失。
玩家打开小游戏典型的过程如下图所示:

  • 图1. 玩家通过不同的进入场景发现并打开小游戏
  • 图2. 启动加载,代码包首包加载、代码注入、初始逻辑等
  • 图3. 游戏业务更多资源加载,比如定制游戏Loading动画,CDN资源加载等
  • 图4. 小游戏玩家可交互阶段我们发现,许多小游戏在此过程中存在耗时过长,黑屏等启动性能问题。 那么,玩家到底是在什么时候离开我们小游戏的呢?

根据小游戏数据助手应用中的“数据-性能分析”中的代码包加载阶段流失时间分布显示,如果能把时间缩短到4秒内,可以减少大约40%玩家的流失。

# 性能关乎用户持续留存

有些游戏玩法非常有趣,品质也很高,但是玩了几分钟后手机就变得滚烫。还有一些游戏画面很精美,却因为内存占用过大而出现闪退,这些性能问题是足以让玩家流失的,即使再有趣的玩法也能难留住玩家。

根据小游戏数据助手应用中的“数据-性能分析”中的内存异常退出分析,我们发现小游戏由于内存问题而退出的占比约为2%,对于重度游戏而言,这个数字可能会达到5%~8%左右。

# 应该如何提升小游戏性能?

游戏性能是一个很复杂的话题。从产生原因来看,既会受到诸如包体大小、游戏逻辑、后端服务稳定等因素影响,同时也受到玩家网络环境、机型设备等开发者无法控制的因素影响,所以,针对于游戏性能的优化,我们需要从游戏的研发流程上来进行拆分,寻找相关的解决方案。
对于一个常见的小游戏,其研发流程大致如下图所示:

我们接下来会针对于每一个研发流程步骤,探讨一下开发者应该如何应用平台所提供的工具,结合开发者自身的优化经验,对游戏进行性能排查和优化。

# 技术调研

“好的开始,是成功的一半”,进行游戏研发之前,我们通常需要针对于游戏特点、平台特性来选择合适的技术方案,除了常规的游戏引擎等方案的确定外,开发者也需要将游戏的运行时(即小游戏平台)作为选型的参考因素,针对于游戏的运行时平台来考虑当前的技术方案和工具是否合适,选择更具扩展性和灵活性的技术方案和相关工具。
对于平台需要考虑的因素,我们对大盘数据进行了整合分析,发布了技术手册-设备兼容篇,从设备硬件、平台特性兼容、网络三大模块,提供多种维度的数据参考,为开发者提供更多技术选型的决策信息。

# 性能调优

游戏性能的提升不仅仅需要依赖于平台能力的不断优化,更依赖于开发者的精益求精,在开发阶段对代码质量、资源管理等方面进行精雕细琢。Alt text
“工欲善其事,必先利其器”,有效利用平台已有的调优工具,能更快、更精准地发现游戏存在的性能问题,同时能更便捷地获取相关的优化手段,以下是平台提供的调优工具:

  • 性能评测工具 — 用于分析、提升小游戏性能的自动化检测工具,协助开发者更精确地定位问题并提供优化建议。
  • 云测试工具 — 为开发者提供的一套完整易用的在线测试服务,以帮助开发者更高效、更全面地进行自动化游戏性能测试、兼容性测试。
  • 最佳实践 — 游戏优化相关的最佳实践指南
  • 真机性能面板 - 调试阶段,为开发者提供游戏性能数据的实时监控。

# 性能监控

除了在研发阶段完成性能调优的必要工作外,在游戏发布上线后,还需要对线上真实运行数据的进行监控、异常告警,同时关注玩家的反馈。平台目前主要提供了如下的工具,帮助开发者掌握和了解游戏线上的运行状况:

  • 性能监控 — 为开发者提供一个较为全面的性能数据监控系统,帮助开发者快速了解游戏整体的性能情况、获取游戏优化指引和设定异常指标监控。
  • 评测标准 — 开发者的性能反馈和调优的参考标准。
  • 数据助手 - 为开发者提供多维度、多指标的线上用户真实运行数据。
  • 玩家反馈 — 通过LogManager.log记录游戏关键路径信息,当玩家发生异常时,引导其反馈相关异常。

如果您想进一步了解性能以及提高小游戏体验的方式,请浏览我们的性能文档,获取有关各类主题的指南。我们会不断添加新指南并更新现有指南,请持续关注!