Unity - Profiler参数详解

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

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

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
图形学
Unity Profiler CPU使用情况分析器
内容翻译主要以机器翻译为主,有翻译错误的地方大家留言我可以及时更正 CPU使用情况分析器 CPU使用情况分析器显示您在游戏中花费的时间。
2336 0
|
Java 图形学 异构计算
|
Java 图形学 异构计算
|
4月前
|
C# 图形学
【Unity 3D】元宇宙案例之虚拟地球信息射线实战(附源码、演示视频和步骤 超详细)
【Unity 3D】元宇宙案例之虚拟地球信息射线实战(附源码、演示视频和步骤 超详细)
48 0
|
4月前
|
人工智能 自然语言处理 区块链
【Unity 3D】元宇宙概念、应用前景、价值链等概述
【Unity 3D】元宇宙概念、应用前景、价值链等概述
51 0
|
4月前
|
vr&ar C# 图形学
【Unity 3D】VR飞机拆装后零件说明功能案例实战(附源码和演示视频 超详细)
【Unity 3D】VR飞机拆装后零件说明功能案例实战(附源码和演示视频 超详细)
37 0
|
4月前
|
vr&ar C# 图形学
【Unity 3D】VR飞机动态拆装及引擎开关控制案例(附源码和演示视频 超详细)
【Unity 3D】VR飞机动态拆装及引擎开关控制案例(附源码和演示视频 超详细)
38 0
|
4月前
|
vr&ar 图形学
【Unity 3D】VR飞机起飞喷火游戏案例实战(附源码和演示视频 超详细)
【Unity 3D】VR飞机起飞喷火游戏案例实战(附源码和演示视频 超详细)
49 0
|
4月前
|
vr&ar 开发工具 图形学
【Unity 3D】使用EasyAR实现单图识别的AR增强现实功能(附实现步骤)
【Unity 3D】使用EasyAR实现单图识别的AR增强现实功能(附实现步骤)
83 0
|
4月前
|
图形学
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
98 0