Unity - Profiler参数详解

Posted jieke666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity - Profiler参数详解相关的知识,希望对你有一定的参考价值。

CPU Usage

?       ● GC Alloc - 记录了游戏运行时代码产生的堆内存分配。这会导致ManagedHeap增大,加速GC的到来。我们要尽可能避免不必要的堆内存分配,同时注意:1、检测任何一次性内存分配大于2KB的选项;2、检测每帧都具有20B以上内存分配的选项。

● WaitForTargetFPS - VSync功能所致,即显示的是当前帧的CPU等待时间。

●? Overhead - 表示Profiler总体时间,即所有单项的记录时间总和。用于记录尚不明确的时间消耗,以帮助进一步完善Profiler的统计。(一般出现在移动设备,锯齿状为Vsync所致)

●? Physics.Simulate - 当前帧物理模拟的CPU占用量。

●? Camera.Render - 相机渲染准备工作的CPU占用量。

●? RenderTexture.SetActive - 设置RenderTexture操作。比对当前帧与前一帧的ColorSurface和DepthSurface,如果一致则不生成新的RT,否则生成新的RT,并设置与之对应的Viewport和空间转换矩阵。

●? Monobehaviour.OnMouse_ - 用于检测鼠标的输入消息接收和反馈,主要包括 SendMouseEvents和DoSendMouseEvents。

●? HandleUtility.SetViewInfo - 仅用于Editor中,作用是将GUI在Editor中的显示看起来与发布版本上的显示一致。

?● GUI.Repaint - GUI的重绘(尽可能避免使用Unity内建GUI)。

● Event.Internal_MakeMasterEventCurrent - 负责GUI的消息传送。

●? Cleanup Unused Cached Data - 清空无用的缓存数据,主要包括RenderBuffer 的垃圾回收和TextRendering的垃圾回收。

●? RenderTexture.GarbageCollectTemporary - 存在于RenderBuffer的垃圾回收中,清除临时的FreeTexture。

●? TextRendering.Cleanup - TextMesh的垃圾回收操作。

●? Application.Integrate Assets in Background - 遍历预加载的线程队列并完成加载,同时完成纹理的加载、Substance的Update等。

●? Application.LoadLevelAsync Integrate - 加载场景的CPU占用。

●? UnloadScene - 卸载场景中的GameObjects、Component和GameManager,一般用在切换场景时。

●? CollectGameObjects - 将场景中的GameObject和Component聚集到一个Array 中。

●? Destroy - 删除GameObject或Component的CPU占用。

●? AssetBundle.LoadAsync Integrate - 多线程加载AwakeQueue中的内容,即多线程执行资源的AwakeFormLoad函数。

●? Loading.AwakeFormLoad - 在资源被加载后调用,对每种资源进行与其对应的处理。

●? StackTraceUtility.PostprocessStacktrace() 和 StackTraceUtility.ExtractStackTrace() - 一般是由Debug.Log或类似API造成,游戏发布后需将Debug API进行屏蔽。

●? GC.Collect - 系统启动的垃圾回收操作。当代码分配内存过量或一定时间间隔后触发,与现有的Garbage size及剩余内存使用粒度相关。

● ?GarbageCollectAssetsProfile - 引擎在执行UnloadUnusedAssets操作。

GPU Usage?

●? Device.Present - device.PresentFrame的耗时显示,该选项出现在发布版本中。关于该参数有如下几个常见问题:1、GPU的presentdevice确实非常耗时,一般出现在使用了非常复杂的Shader等;2、GPU运行是非常快的,而由于Vsync的原因,使得它需要等待较长时间;3、同样是Vsync的原因,若其他线程非常耗时,会导致该项等待时间很长,比如过量的AssetBundle加载时容易出现该问题。

● Graphics.PresentAndSync - GPU上的显示和垂直同步耗时,该选项出现在发布版本中。

● Mesh.DrawVBO - GPU中关于Mesh的Vertex Buffer Object的渲染耗时。

●? Shader.Parse - 资源加入后引擎对Shader的解析过程。

●? Shader.CreateGPUProgram - 根据当前设备支持的图形库信息来建立GPU工程。

Memory?

● GameObjects in Scene - 当前帧场景中的GameObject数量。

● Total Objects in Scene - 当前帧场景中的Object数量(除了GameObject外,还有Component等)。

●? Total Object Count - Object数量 + Asset数量。

●? Scene Memory - 记录当前帧场景中各方面的内存占用情况,包括GameObject、所有资源、各种组件及GameManager等。

更多unity2018的功能介绍请到paws3d爪爪学院查找。

以上是关于Unity - Profiler参数详解的主要内容,如果未能解决你的问题,请参考以下文章

Unity常用组件参数详解

Unity之粒子特效参数详解——上

Unity 之 打包参数 -- Player面板属性详解

unity5x --------Music Mixer参数详解

Unity编程Unity中关于四元数的API详解

详解Unity中的角色控制器