unity 性能查看工具Profiler

前言

每次进行游戏优化的时候都用这个工具查看内存泄漏啊、代码优化啊之类的东西。真的好用,但是之前也就是自己摸索一下就用了,这次所以就跑去看看官网教程

profiler工具介绍

Windows ——> analysis——>profiler 打开profiler面板

1是菜单栏 2是模块选择面板 3是帧视图 4是模块详细信息
菜单栏中选中Record,运行时就会自动收集分析数据,鼠标左键点击帧视图就会暂停程序,显示出当前帧的综合信息.

菜单栏


record:选中后开始收集数据
deepProfile:更深层次的显示代码的堆栈调用信息(会占用大量内存)
profile Editor:收集unity编辑器占用的资源(一般不用)
Editor:当前收集信息的目标源,设置这个能以真机为目标设备采集数据
Allocation CallStacks:设置这个可以在模块详细信息或者timeline视图观察GC的完整堆栈
Clear on Play:运行时清空当前视图
Clear:清空当前视图
Load:加载统计数据
Save:保存统计数据
Frame:指示当前 查看的帧号,前后箭头可以切换上一帧下一帧,按键盘的左右键效果一样

帧视图


模块视图中的正方形颜色就是帧视图中该模块的颜色,在模块视图中针对不同数据项可以进行隐藏与排序。左键点击帧帧视图Unity会暂停运行。模块详细信息会显示当前选中帧的详细信息。

模块视图


Add Profiler:添加模块视图
CPU Usage:Cpu信息视图,关掉这个视图,仍然会采集数据,最主要的分析视图,通过这个可以确定渲染、物理、代码、动画等模块当前运行完毕所需要的时间,从而进一步决定是否就不同模块再进行更具体的分析。
CPU Usage:GPU模块默认是取消勾选的,收集数据会有很大的开销,有的平台或设备不一定支持。
Rendering:这个视图的统计的数据跟Game视图中的stats(Statistic面板)统计渲染方面的的东西差不多是一样的,顶点数,三角形,批次合并数,等等
Memory:可以查看各个部分对内存的占用情况,比如贴图,GC,Meshes等
Audio:声音统计信息
Physics:物理统计信息
UI:UI统计信息
Global Illumination: 光照统计信息
. . .

模块详细信息

通过profiler分析优化游戏性能

  1. 不要等到游戏开发完毕的时候再来统一优化游戏性能,如果加了某个功能发现性能异常就立即排查
  2. 开发的时候时刻注意资源优化,不要自己给自己挖坑
  3. 如果开发的时候很认真的对待写的代码,用的资源。那么最后进行更深层次的针对性的优化会简单很多
  4. 游戏卡顿的原因,一个是整体帧率太低,一般30帧往上都能接受,第二个是帧率变化太大,某个Update需要很长时间才执行完毕,这时就会卡。

一般而言,游戏性能优化基本可以这样分类,资源的优化与脚本的优化
美术资源在开发时就应该遵循够用的前提下,用最小的资源。如果到了这后期出现较大的瓶颈,(程序能做的就是针对不同平台设置相应不同的压缩方式), 如果仍然不能满足需求,让美术优化某些资源可能比程序自己优化要效果好得多。程序要做的就是通过分析工具找出需要优化的资源。脚本优化的话主要也是优化自己写的代码。下面我们就来看看如何定位问题:

  • 首先我们从CPU模块开始分析
  • 禁用垂直同步,这部分不需要我们关心,在模块视图中隐藏VSync,另外每当我们在“层次结构”视图中看到一个名为WaitForTargetFPS 的函数时,这意味着我们的游戏正在等待VSync。
  • 渲染限制, 渲染是性能问题的常见原因。在尝试解决渲染问题之前,确定我们的游戏是受CPU限制还是受GPU限制很重要,因为这些情况需要不同的处理方法。
    如果可以进行GPU Usage分析,那么看下图中的部分,CPU与GPU谁用的处理时间长,性能瓶颈就在谁那里。

    如果不能进行Gpu Usage分析,那么选中Cup Usage,在详细信息视图中,选Hierarchy,按time ms时间排序,如果Gfx.WaitForPresent函数花时间最长,说明CPU在等待GPU。
  • 要进行不同的性能分析基本靠着Cpu Usage的详细信息,就可以大致分析出性能瓶颈,然后看需要是否要进行更深层次的分析。

最后

** 个人认为,游戏优化除了那些内存泄漏和不合理的代码,就是在目标设备支持的前提下,找到效果、性能与占用内存之间的平衡点。另外建议做优化一定不要“先挖坑,再填坑”,能开发的时候解决的问题就不要留到最后。**

  • 8
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值