导语
在最近一次游戏性能专项测试过程中发现帧率陡降,开发同学分析源代码堆栈信息,折腾了很久一直无法定位原因,最终定位到原来是手机发热降频引起。
有经验一看完整的性能数据,基本一眼都能看出问题原因。需要强调一点:分析问题需要整体数据联动分析,单独看某单一信息是没是意义的。这个案例很典型,所以将本次性能实战经验分析出来,希望对测试或者开发同学有些帮助。
一月一度的游戏性能专项回归测试过程中,我们在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%这个如何理解?是由于帧率降低了,渲染东西变少了,自然利用率降低。
很容易想到的点都分析到,都没发现说明问题。在测试过程中发现手机发热厉害,会不会与温度有关?如图:
在最近一次游戏性能专项测试过程中发现帧率陡降,开发同学分析源代码堆栈信息,折腾了很久一直无法定位原因,最终定位到原来是手机发热降频引起。
图片发现帧率从47帧降到16.9帧,频率从1700+2800降低到576+825。验证了确实是降频引起帧率降低,顿开茅塞的感觉。这次问题也得以解决。
PerfDog专家课堂划重点
手机硬件温控系统,为什么需要温控?
因为:手机高频运行类似发动机一样,产生极大能耗热量,高频随着运行时间,温度会持续增加,若不加控制,会不会上几百度?会烧毁CPU芯片,所以硬件需要温度控制,如何控制?唯有降低CPU频率,当温度超过一定阈值,就会触发温控降频机制。不同手机厂商温度阈值不一样,有些手机50度就会降频,有些手机65度才会降频,之前测试过小米5,好像不到50度就会降频,对温度及其敏感。
PerfDog是专注于移动性能测试分析的平台,能够提供很多性能数据,每一项数据都很有意义和价值。但是在分析问题过程中,需要多数据一起联动分析,可能会发现意想不到的效果。
感谢PerfDog专家提供技术课堂内容,欢迎点击阅读原文跳转至PerfDog下载页面或通过以下方式了解更多关于PerfDog的信息:
扫码即刻加群 与2000+测试同行深度交流
PerfDog官网:perfdog.qq.com
PerfDog交流群:602206842
关于腾讯WeTest
腾讯WeTest是由腾讯官方推出的一站式品质开放平台。十余年品质管理经验,致力于质量标准建设、产品质量提升。腾讯WeTest为移动开发者提供兼容性测试、云真机、性能测试、安全防护、企鹅风讯(舆情分析)等优秀研发工具,为百余行业提供解决方案,覆盖产品在研发、运营各阶段的测试需求,历经千款产品磨砺。金牌专家团队,通过5大维度,41项指标,360度保障您的产品质量。