首页 > 网络 > 网络热点

如何定位游戏发热问题

常驻编辑 网络热点 2022-06-30 角形   热点   游戏   顶点   机型   带宽   分辨率   界面   数量   现象

Q:目前项目的发热问题很头疼,2D游戏,基于TileMap、SpriteRenderer和UGUI的渲染,关闭了垂直同步,TargetFrameRate设置为60。Android和iOS上发热都很严重,而且在比较好的机型(比如iPhone 12这种),发热现象甚至更明显。ixy拜客生活常识网

跟大部分情况不同,发热并没有怎么影响帧率,在大部分机型上,帧率都不是问题,连iPhone 8机型,都能60帧跑满。ixy拜客生活常识网

在Unity Profile和Xcode都进行过性能分析,CPU最明显的热点函数就是Spine的骨骼动画更新计算。然而到一个没有骨骼动画的场景,发热现象稍好点,但还是比预期的要烫不少(场景中除了地面和一些静态贴图,基本就没有多少东西)。ixy拜客生活常识网

另一个比较普遍的发热点是网络测试,在某场景关闭网络后,发热依然严重。甚至启动游戏,停留在登录界面一会儿,发热现象都比别的游戏更明显。ixy拜客生活常识网

猜测是否由于每帧的顶点数量过多造成的,在游戏中Unity的Status面板,顶点数量Verts达到了40KB,三角形Tris也有几乎20KB。看起来很多,但我不太清楚当前主流游戏这个数值的级别大概是多少。而且,顶点和三角形的数量很难解释登录界面依然容易发热,毕竟登录界面这些数值不可能很高。ixy拜客生活常识网

自己也做了很多测试了,实在搞不清楚问题究竟在哪儿,Unity是还有什么特别需要优化的,针对发热的点吗?ixy拜客生活常识网

A1:可以用Xcode抓帧看看带宽,Load Store Action是否合理。ixy拜客生活常识网

A2:以下是我的建议:ixy拜客生活常识网

iPhone 8上跑满60帧,证明CPU、GPU都没有到达瓶颈,消耗在较为合理的范围。推荐在Unity Profiler看一下CPU端的消耗,以及查看一下DrawCall数量。ixy拜客生活常识网

推荐使用FrameDebugger,看一下是否有冗余的物体或者后处理在渲染,尤其是你说的启动界面有发热。ixy拜客生活常识网

如果低级错误都排查过了,那么建议看一下是否用了原生的插件。ixy拜客生活常识网

渲染的分辨率是否调整过了,RenderScale的值和FrameDebugger可以查出来分辨率。ixy拜客生活常识网

A3:关于发热的问题,通常要从几个角度排查:CPU压力(耗时)、GPU压力(耗时和带宽,可以考虑降低分辨率看看发热问题是否会有改善)和IO等几个角度。从题主的问题上看,耗时应该是没问题,都能跑满帧(当然60帧本身就是对发热影响比较大的一点,可以看看限制30帧会不会发热有下降),所以要看看一些隐形的东西是否有问题。比如带宽,可以用Snapdragon在高通手机上跑一跑。如果带宽较高,看看纹理的一些设置是否合理,比如是否压缩、是否开启Mipmap,这两项通常都是需要设置成开启的。还可以查看是否有不必要的BlitCopy操作,在URP项目中比较容易出现Copy Color和Copy Depth浪费。对于IO,需要看看是否存在子线程里面有频繁IO的现象。ixy拜客生活常识网

如果大家有更好的回答,欢迎大家前往社区交流:ixy拜客生活常识网

https://answer.uwa4d.com/question/62910e1ab87a457351669b0cixy拜客生活常识网

相关阅读:

  • 三角形面积怎么求 三角形的面积怎么测量?
  • 环形城市降雨比方形三角形更多
  • 端午节快乐
  • 从国产大飞机C919上的国产GPU看GPU的架构设计
  • 研究表明:幼儿多玩拼图,能让数学赢在起跑线上,如何玩是关
  • 水滴屏设计?360一款新机入网
  • 美国水兵称军舰遭UFO群包围,UFO研究又有新计划
  • 《穿Prada的女魔头》在16年后过时了吗?
  • 美国又成立一个新部门,专门调查UFO和USO,这样做有什么目
  • 家乡异地皆乐趣:浪琴Spirit
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。