Unity - Profiler参数详解

  1. 云栖社区>
  2. 博客>
  3. 正文

Unity - Profiler参数详解

二哈卖豆腐 2019-05-06 23:58:21 浏览392
展开阅读全文

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爪爪学院查找。

网友评论

登录后评论
0/500
评论
二哈卖豆腐
+ 关注