欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Unity - Profiler参数详解

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

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