性能常识 腾讯游戏性能实战案例分享之帧率陡变

腾讯WeTest · 2020年04月07日 · 1745 次阅读

导语

 在最近一次游戏性能专项测试过程中发现帧率陡降,开发同学分析源代码堆栈信息,折腾了很久一直无法定位原因,最终定位到原来是手机发热降频引起。

      有经验一看完整的性能数据,基本一眼都能看出问题原因。需要强调一点:分析问题需要整体数据联动分析,单独看某单一信息是没是意义的。这个案例很典型,所以将本次性能实战经验分析出来,希望对测试或者开发同学有些帮助。

  一月一度的游戏性能专项回归测试过程中,我们再 Galaxy S9 Plus 手机上测试发现,帧率出现陡降问题,非常有规律的:进入游戏玩一段时间帧率 FPS 出现缓慢降低,从 50 帧降低到十几帧,然后一直持续低帧率,低帧率情况下 Jank 卡顿明显增加,具体如 PerfDog 客户端截图:

对应 web 截图 (web 图表信息看的会更直接些) 如下:

      开发同学还以为是游戏代码问题,打印堆栈信息也没看出什么问题,CPU 利用率 15% 左右,总利用率 40% 左右都很正常,问题是陡降过程中,CPU 利用率也无变化。如图:

      排除了 CPU 的原因,那是否是内存 memory 出现泄漏,导致内存不够用以至于出现内存 swap 置换问题被?但通过数据看,500-600MB 左右也很正常。如图:

      CPU 和内存都没有问题,游戏的渲染画面,相对来说 GPU 可能出现瓶颈,逐对 GPU 进行查看,发现帧率陡降过程中 GPU 利用率从 80%-40% 左右,说明 GPU 不是性能瓶颈点,GPU 降为 40% 这个如何理解?是由于帧率降低了,渲染东西变少了,自然利用率降低。

 

       很容易想到的点都分析到,都没发现说明问题。在测试过程中发现手机发热厉害,会不会与温度有关?如图:

      实际测试发现,发现温度竟然高达 70 度了,这是要煮鸡蛋的节奏?凭对 CPU 硬件感知,觉得可能是高温引起 CPU 降频。马上查看 CPU Freq 频率信息,如图:

       图片发现帧率从 47 帧讲到 16.9 帧,频率从 1700+2800 降低到 576+825。验证了确实是降频引起帧率降低,顿开茅塞的感觉。这次问题也得以解决。

 

PerfDog 专家课堂划重点:

手机硬件温控系统,为什么需要温控?

因为:手机高频运行类似发动机一样,产生极大能耗热量,高频随着运行时间,温度会持续增加,若不加控制,会不会上几百度?会烧毁 CPU 芯片,所以硬件需要温度控制,如何控制?唯有降低 CPU 频率,当温度超过一定阈值,就会触发温控降频机制。不同手机厂商温度阈值不一样,有些手机 50 度就会降频,有些手机 65 度才会降频,之前测试过小米 5,好像不到 50 度就会降频,对温度及其敏感。

 

        PerfDog 是专注于移动性能测试分析的平台,能够提供很多性能数据,每一项数据都很有意义和价值。但是在分析问题过程中,需要多数据一起联动分析,可能会发现意想不到的效果。


共收到 1 条回复 时间 点赞
匿名 #1 · 2020年04月14日

你这个没有最终结论啊
比如温度高了降频,是什么引起了温度升高?是不是游戏内代码不合理导致需要大量计算资源?还是测试环境不够干净导致后台有其他进程占用资源?还是真的是手机硬件(soc、散热结构、握持方式、环境温度等)本身问题?有没有做过同平台硬件结果对比?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册