Unity Profiler CPU使用情况分析器

内容翻译主要以机器翻译为主,有翻译错误的地方大家留言我可以及时更正

  • CPU使用情况分析器


CPU使用情况分析器显示您在游戏中花费的时间。选中时,下窗格显示所选帧的分层时间数据。查看Profiler Window
的文档,了解更多关于探查器时间线的信息。

  • Hierarchy mode:显示分层结构的时间数据。
  • Group Hierarchy mode:时间数据分组为逻辑组(如渲染,物理,脚本)。因为任何Group的子项也可能处于不同的小组(例如,某些脚本也可能称为渲染功能),所以Group时间百分比通常加起来超过100%。

上下拖动图表标签以重新排列CPU图表的堆叠方式。

选择个别项目

在下窗格中选择某个项目时,其对CPU图表的贡献将高亮显示(其余灰显)。再次点击一个项目取消选择它。

Render.OpaqueGeometry选中并在图表中突出显示其贡献。

在分层时间数据中,Self是指在特定函数中花费的时间,不包括调用子函数所花费的时间。在上面的截图中,41.1%的时间花在Camera.Render函数中。这个函数做很多工作,调用各种绘图和裁剪函数。排除所有这些功能,只有2.1%的时间花在Camera.Render函数本身上。

Time msSelf ms列显示相同的信息,但以毫秒为单位。Camera.Render以0.01ms但是,包括所有的函数调用,0.21ms消耗。该GC Alloc显示多少内存被分配在当前帧,稍后由垃圾收集器收集。保持这个值在零防止垃圾回收器使您的帧率波动。

CPU Profiler 的Others部分记录了所有不属于渲染、脚本、物理,垃圾收集或垂直同步。这包括动画、AI、音频、颗粒、网络、加载和PlayerLoop。

物理标记(Physics markers)

下面的描述简要说明了各个高级物理分析器标记的含义。

  • Physics.Simulate:所谓从FixedUpdate。这个更新的物理状况来指导物理引擎(PhysX)运行仿真。
  • Physics.Processing:所谓从FixedUpdate。这是所有非布料物理作业处理的地方。扩展此标记显示了物理引擎内部正在进行的工作的低级细节。
  • Physics.ProcessingCloth: 所谓从FixedUpdate。这是所有布料物理作业处理的地方。扩展这个标记将显示物理引擎内部正在进行的低层次细节。
  • Physics.FetchResults:所谓从FixedUpdate。这就是物理模拟结果从物理引擎中收集到的地方。
  • Physics.UpdateBodies:所谓从FixedUpdate。这是所有物理体的位置和旋转更新以及发送这些更新信息的地方。
  • Physics.ProcessReports:所谓从FixedUpdate。这一阶段是运行一次物理FixedUpdate已得出结论,并在所有响应仿真结果的各个阶段的处理。接触,接头断裂和触发更新和信息在这里。有四个不同的子阶段:
    • Physics.TriggerEnterExits:所谓从FixedUpdate。这就是OnTriggerEnter和ontriggerexit事件处理。
    • Physics.TriggerStays:所谓从FixedUpdate。这是ontriggerstay事件处理。
    • Physics.Contacts:所谓从FixedUpdate。这就是OnCollisionEnter,oncollisionexit和oncollisionstay事件处理。
    • Physics.JointBreaks:所谓从FixedUpdate。这就是与关节断开有关的更新和信息。
  • Physics.UpdateCloth:从更新调用。这是关于布料及其蒙皮网格的更新。
  • Physics.Interpolation:从更新调用。这个阶段涉及所有物理对象的位置和旋转的插值。

性能警告

CPU Profiler能够检测并警告您一些常见的性能问题。在查看CPU使用时,出现在下面窗格的警告栏中。


Profiler警告指示静态碰撞已被移动

Profiler可以检测到的具体问题是:

  • Static Collider.Modify(昂贵的延迟成本)
  • Static Collider.Move(昂贵的延迟成本)
  • Static Collider.Create(昂贵的延迟成本)
  • Animation.DestroyAnimationClip [触发器RebuildInternalState]
  • Animation.AddClip [触发器RebuildInternalState]
  • Animation.RemoveClip [触发器RebuildInternalState]
  • Animation.Clone [触发RebuildInternalState]
  • Animation.Deactivate [触发器RebuildInternalState]
    在上面的截图中,Profiler显示了Static Collider.Move警告。该**Warning **栏表明,该警告已在当前帧被触发12次。术语“延迟成本”意味着,尽管事件Profiler中的条目可能表现出较低的成本(在这种情况下为0.00ms),但是该操作稍后可能触发更多的系统要求操作。

CPU Profiler Timeline

内存记录:本机内存性能分析

本机内存性能分析允许您在Unity本机内存管理系统中剖析活动,并评估它如何影响运行时性能。在Unity内存管理中搜索不需要的或资源密集型的分配模式时,这可能很有用。

要分析Unity的本机内存管理,您需要记录它。要访问本机内存录制模式(在Unity中称为Mem Record),请转到Window > Profiler打开Profiler窗口。选择CPU Usage Profiler(如果不可见,请单击AddProfiler > CPU),然后选择Profiler下的下拉菜单。接下来,点击Timeline,然后选择Mem Record

选项 功能 对性能的影响
None 模式禁用。这是默认选择。 N/A
Sample only 录内存分配,重新分配,解除分配,活动类型和系统。 Low
Callstack (fast) 与“ Sample only”具有相同的功能,但是也会记录从原始分配站点到callstack从本地符号转换为脚本符号的缩短调用堆栈。实际上,你只能看到最深的脚本符号的调用堆栈。 Medium
Callstack (full) 这与“ Sample only”具有相同的功能,但还会记录完整的脚本到本机和本机到脚本的转换。 High

注意:当活动的Profiler仅连接到独立播放器时,仅支持低影响的仅限样本模式。

记录的内存分配样本以鲜红色显示在Profiler窗口中。


点击记录旁边的高细节按钮启用高细节模式。选择一个样本来显示分配类型和系统。如果为选定的分配样本记录了callstack,则关联的callstack符号也将被解析并显示:

使用Mem记录
有一些情况下,其中的纪念品记录功能非常有用。例如:

  • 学习一个系统正在做很多小的分配而不是几个大的分配。
  • 学习什么时候一个工作线程意外地分配内存(例如通过意外的MemLabel使用)。
  • 发现锁定争用(当多个线程同时尝试访问本机内存系统时)。
  • 查找内存碎片来源(对于低内存设备尤其重要)。

时间线的高细节视图

CPU使用情况分析器时间轴的高细节视图至少每个由Unity的CPU使用情况分析器记录的样本都给出一个宽度的像素。

这使您可以查看框架中所有活动的完整概览,包括线程同步或内存分配等短暂活动。

要启用“ 高细节”视图,请转到“ 窗口” >“ 分析器”以打开“分析器”窗口。选择CPU Usage Profiler(如果不可见,请单击添加Profiler > CPU),然后选择Profiler下的下拉菜单,然后单击时间轴,然后选择高细节。


对照

以下两张图显示了CPU使用情况分析器时间轴的高细节视图和普通视图之间的区别。

高细节视图

普通视图

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容