美文网首页
[Unity]Profiler学习

[Unity]Profiler学习

作者: 江枫枫Maple | 来源:发表于2019-12-17 18:19 被阅读0次

          昨天在朋友圈看到了一个性能优化的分享,刚好最近在对自己前一段写的垃圾代码进行优化,趁着这次机会可以顺便学习一下自己一直觉得很神秘的Profiler。

    Profiler
          首先我们关注上面的按钮区,有一个DeepProfiler,开启了这个之后(开启的时候会加载什么东西,反正线程会被卡死一小会,要等一下哦),在Hierarchy窗口中可以看到更详细的函数耗时信息。然后还有一些clear/save/load按钮可以对记录的信息进行清除保存加载功能~
          然后在CPU Usage中可以看到五颜六色的图案,里面对应的图案颜色就是左侧那些模块对应的CPU耗时了。这里我在瞎点的时候发现,左边那些模块是可以关闭的,点击一下左侧列表的颜色就可以关掉了,可以更专注于你想要关心的模块~
    CPU总耗时
          Hierarchy窗口就是我们主要要关注的CPU耗时相关的了,上面会有记录总的耗时,当真机调试的时候可以看到GPU耗时,editor模式下好像看不到GPU耗时。然后下面会记录每个模块或函数具体的耗时。

          关于耗时与帧率之间的关系:我们知道帧率就是每秒要绘制多少张图片,我们用30帧/s举例,我们一秒钟要在屏幕上绘制30张图像,而1s=1000ms,那么平均下来我们绘制每张图片的耗时就是1000/30=33.33ms,也就是说我们CPU耗时要在33.33ms以内,才能保证我们有30帧/s的帧率。

          在观察Profiler时我发现,占用大部分时间的大多是WaitForTargetFPS,查了资料才知道这项是Unity为了稳定帧率用的空白等待时间。
          然后就是根据Profiler中自己的函数耗时最高的一些函数进行优化了,后面如果我学到了什么更多姿势也会更新在这里的~然后贴几个学习过程中看到很好的文章:
    Unity Profiler 文档
    Profiler中WaitForTargetFPS详解

    补充一点东西:如何自己定义Profiler进行测试

         使用Profiler.BeginSample(FunctionName)和Profiler.EndSample()函数结合,就可以在profiler里加入我们想测试的代码片段了~

    相关文章

      网友评论

          本文标题:[Unity]Profiler学习

          本文链接:https://www.haomeiwen.com/subject/jfjtnctx.html