美文网首页
Unity - Profiler参数详解

Unity - Profiler参数详解

作者: 冰冰棒bling | 来源:发表于2019-05-06 18:28 被阅读0次

    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等。

    相关文章

      网友评论

          本文标题:Unity - Profiler参数详解

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