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