导语
在最近一次游戏性能专项测试过程中发现帧率陡降,开发同学分析源代码堆栈信息,折腾了很久一直无法定位原因,最终定位到原来是手机发热降频引起。
有经验一看完整的性能数据,基本一眼都能看出问题原因。需要强调一点:分析问题需要整体数据联动分析,单独看某单一信息是没是意义的。这个案例很典型,所以将本次性能实战经验分析出来,希望对测试或者开发同学有些帮助。
一月一度的游戏性能专项回归测试过程中,我们再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专家课堂划重点: