Unity Profiler CPU使用情况分析器

2018-01-26  本文已影响2498人  su9257_海澜

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


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

上下拖动图表标签以重新排列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)

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

性能警告

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


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

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

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记录
有一些情况下,其中的纪念品记录功能非常有用。例如:

时间线的高细节视图

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

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

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


对照

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

高细节视图

普通视图

上一篇 下一篇

猜你喜欢

热点阅读