Unity性能分析优化

屏幕撕裂:在一次屏幕刷新中显示多个帧时显示,通常发生在屏幕水平移动

解决方法:垂直同步(VerticalSync)
它将同步图形显示器的刷新率,确保屏幕仅显示整个帧。
例如:屏幕刷新率为60HZ,即16ms更换一次画面,而GPU只需要12ms的渲染时间。剩下的4ms时间就不是一个整块的画面。启用垂直同步的话,如果GPU完成,它将不会呈现在这些刷新率之间。意味着达到12毫秒时,我们能够提供一帧时,每次显示器都要刷新。因此,当我们第一次输入一个帧时,然后每次显示器刷新时,它总是找到GPU刚产生的新帧
比如GPU渲染时间为17ms,由于采用Vsync,因此游戏还是以30fps的速度有效显示.。因为它只每两帧使用一次GPU渲染的画面

在这里插入图片描述

移动端强制使用垂直同步

垃圾回收

在这里插入图片描述

在profiler中搜索(只有存在垃圾回收时才找得到)
gc.alloc找到,点击某个垃圾多的地方,按F跳转到指定地方
gc.collect找到正在收集垃圾的帧
在这里插入图片描述

可以看到影响的具体

Profile Analyzer可以分析多个帧

在PackageManager中安装后打开
在这里插入图片描述

打开后,Profiler也要打开
点击PullData到Analyzer中
在这里插入图片描述

在里面左键选择多个帧
在这里插入图片描述

点击compare可以进行比较两个时间段之间的区别

在这里插入图片描述

扫描二维码关注公众号,回复: 14759487 查看本文章

Frame Debugger

用来分析渲染时每帧的状态

猜你喜欢

转载自blog.csdn.net/weixin_44806700/article/details/123183208