日落20180715001 – Unity性能分析之Profiler的上上下下

系统:Windows 7

引擎:Unity 5.6.5p4

Profiler分为上下两部分:

在上部分,最常用到CPU Usage Profiler,从中可以得到相当多的信息,有什么信息呢?

Rendering

渲染当中,CPU损耗

Scripts

用户自定义脚本产生的损耗

Physics

物理碰撞的消耗

GarbageCollector

GC嘛,就是堆上清除内存时产生的消耗

VSync

垂直同步产生的损耗

Global Illumination

全局照明(好像看过哪个版本是写成GI)

UI

用户界面的消耗

Others

是啥?

其实Profiler默认隐藏一个GPU Usage Profiler,可以通过Add Profiler添加。据说有些平台上调不出GPU Usage Profiler,大概就是这个原因,所以默认隐藏。

如果打开GPU Usage Profiler,则可以显示GPU的微秒数。

否则,GPU则会显示是0.00ms。

当前选中的第几帧:

而上部分选中的那一帧,也会在下部分同步,同时也会Pause掉正在运行的游戏,而因为这时BeginFrame和EndFrame没有改变,因此即使你取消Pause,让游戏继续运行,帧数据也不会有更新,所以要重新更新数据的话,就要点击Current。

Clear是清空帧数据,Save/Load是保存和载入帧数据。

数据的文件类型是.data,可以保存有价值的数据,以后再调出查看。

但载入过旧数据后,即使Current,也没法更新数据,因为需要激活一下Record。

在下部分,默认是Hierarchy,还有Timeline和Raw Hierarchy。

其中,Hierarchy与Raw Hierarchy一样的形式,现在不知道其区别,不过都有相同的数据。

Total

消耗的总占比,包括子项

Self

自身的消耗占比,不包括子项

Calls

被调用的次数

GC Alloc

GC消耗的内存

Time ms

总耗时,包括子项的耗时

Self ms

自身耗时,不算上子项的耗时

通过点击任一项,可以用那一项作为排序,都是降序。

Timeline有主线程、渲染线程,还有在Unity工作系统下的Worker线程,这个Worker一般意义是处理任意工事的工作人员,但也有引申义是指处理特定工事的专职人员,在还没搞清意义前,这个就叫Worker线程好了。

以上简单回顾。

参考资料:

https://docs.unity3d.com/560/Documentation/Manual/ProfilerWindow.html

https://docs.unity3d.com/560/Documentation/Manual/ProfilerCPU.html

https://www.cnblogs.com/alan777/p/6115505.html

猜你喜欢

转载自blog.csdn.net/minami_takumi/article/details/81058941