有图有真相的内存泄漏。
这是一份玩家手机设备上的真实数据,在45分钟内,游戏PSS内存从约1.3GB上升到约3.5GB,这意味着8GB内存的手机已在崩溃的边缘疯狂试探!
还有一种经常遇到的现象,一些持续时间较短的、或是复杂度相对简单,但是在游戏中的位置又比较靠后的场景(例如:战斗结算场景),会出现如下图这样的棘手情况。 在这个4分多钟的场景中,项目的PSS内存持续在3.6GB的高位,但却没有PSS内存泄漏的趋势。
这些问题如何发现、如何定位、如何解决?今天我们就通过对GPM 2.0 Session报告的介绍,让项目组了解如何发现内存泄漏以及过度缓存的问题,还玩家一个完整的游戏体验。
关于 GPM 2.0
GPM 2.0 是一款专为上线或测试阶段的游戏项目打造的高效性能监测工具。它不仅深入捕捉宏观性能数据,还通过其独特的性能无损截图功能,让开发者在不影响玩家体验的前提下,全面掌握玩家运行时的关键细节,从多个维度优化游戏的性能表现,提升整体用户体验。
我 们在 做性能评估时,通常聚焦于FPS帧率、PSS内存占用及功耗这三大直接影响玩家体验的指标,它们分别关联着玩家经常投诉的“画面卡顿”、“应用崩溃”及“设备过热耗电快”问题。 其中PSS内存的变化更因受到玩家行为路径的影响,导致自测用例无法全面覆盖。所以,针对PSS内存问题的诊断,细致观察内存变化趋势显得尤为重要。
在GPM 2.0「异常Session筛查」报告中(所谓Session,就是从玩家启动游戏到完全退出游戏的片段),我们能够超越单一场景的局限,全面审视玩家整个游戏过程中的性能数据。在玩家游戏过程中所有被记录了异常的场景报告都会被整合在同一份Session报告中。
例如下图所示,整个Session中共有2个场景采集到了异常数据,可以发现其中第二个场景下的PSS内存表现比较平稳,但是第一个场景中存在着明显的疑似PSS内存泄漏的趋势。当结合场景信息、游戏画面截帧,开发人员可以掌握玩家是通过什么行为路径导致内存没有释放。
以下是几种常见导致内存泄漏的原因,可以对照参考:
1. 观察GPM 2.0报告截帧展示的信息,是否有有明显的新UI、物件进入画面,例如Boss、怪物、特效等,从而判断是否新添加的资源出现了未卸载的问题;
2. 当同一个场景下有部分玩家内存高但是又有大部分是正常的,可以观察这批有问题的玩家是否携带了特殊的某一件装备/宠物,是否这个装备的特效或技能导致了内存上涨,有可能是资源自身制作规格的问题,或者逻辑上与加载/卸载相关的Bug。
同时,GPM 2.0还提供了一种“全量数据收集”的模式。在这种模式下,无论是否触发异常,GPM 2.0会直接采集所有场景下的异常数据,并合并为同一份Session报告。其中,无论是PSS内存的暴涨还是泄漏导致的缓慢堆积,都会在报告中展示出来。特别适合例如CBT/OBT阶段,性能优化和玩家行为监测两手都要抓的项目。
虚线为场景分割线,可见非常典型的疑似内存泄漏趋势
全量收集数据,可以完整追踪玩家行为
当然,同样的功能我们也可以用来观察项目的FPS内存表现和功耗表现,对于需要发现整个玩家Session中的局部性能表现不佳场景(例如掉帧和高功耗)的情况,「异常Session筛查」功能都将是帮助项目组快速定位问题的利器。
如果您的项目也希望体验GPM 2.0的强大功能,欢迎随时与UWA取得联系。我们将为您提供免费试用机会,并在试用期间全程支持服务搭建、数据分析与反馈,确保您能够充分体验GPM 2.0带来的价值。
联系UWA:
邮件:sales@uwa4d.com
微信号:17502188376