Unity Profiler概述及Profiler window 说明

文章内容主要翻译自 官方文档Profiler overview
内容翻译主要以机器翻译为主,有翻译错误的地方大家留言我可以及时更正

Profiler概述

Unity Profiler窗口可帮助您优化您的游戏。它会为您报告在游戏的各个区域花了多少时间。例如,它可以报告渲染,动画或游戏逻辑的时间百分比。

您可以分析GPU,CPU,内存,渲染和音频的性能。

要查看性能分析数据,请在编辑器中使用性能分析功能玩游戏,并记录性能数据。分析器窗口然后在时间轴上显示数据,因此您可以看到尖峰(需要更多时间)的帧或区域。通过点击时间线中的任何位置,Profiler窗口的底部将显示所选帧的详细信息。

请注意,性能分析必须测试您的代码(即:添加一些说明以方便检查)。虽然这对游戏的性能影响很小,但开销足够小,不会影响游戏帧率。

有关使用该工具的提示

在使用分析工具时,应关注消耗最多时间的游戏部分。比较代码更改前后的分析结果,并确定您测量的改进。有时您为改善性能所做的更改可能会对帧速率产生负面影响; 您的代码优化可能会有意想不到的后果。

有关Profiler窗口的详细信息,请参阅Profiler窗口文档。

另请参阅:优化图形性能

Profiler窗口

通过工具栏访问Unity编辑器中的Profiler窗口:Window > Profiler

请参阅Profiler概述,了解Profiler的工作原理。


Profiler控件位于窗口顶部的工具栏中。使用这些来打开和关闭仿形,并通过异形框架导航。传输控件位于工具栏的最右端。注意,当游戏运行时,探查器正在收集数据,点击其中的任何一个传输控件暂停游戏。控件进入第一个记录帧,第一帧后退,第一帧向前,最后一帧。

  • 添加要显示数据的模块 ,已经添加的为灰色
  • ** 在Editor模式下的性能消耗数据,不需要运行**


  • 连接真机上的选项
  • 清除 载入 保存 对应的日志

Profiler不保存所有记录的帧,所以第一帧的概念实际上应该是仍然保存在内存中的最老的框架。“当前”传输按钮使配置文件统计窗口显示实时收集的数据。活动分析器弹出菜单允许您选择是否应该在编辑器或单独的播放器中进行分析(例如,在附加的iOS设备上运行的游戏)。保存按钮允许您将录制的帧写入文件。相应地,加载按钮读取较早保存的数据。你也可以加载二进制文件数据写入由球员(当生成日志,设置Profiler.enableBinaryLog使二进制格式)。如果按下Shift按钮时单击“加载”,则将文件内容附加到内存中当前概要文件帧中。

  • 逐帧调整面板

深度分析

当打开Deep Profile时,所有的脚本代码都被定义了—也就是说,所有函数调用都被记录下来。这是有用的知道确切的时间花费在你的游戏代码。

请注意,深度剖析会产生非常大的开销,占用大量内存,因此,在进行分析时,您的游戏运行速度会大大减慢。如果您使用的是复杂的脚本代码,可能根本无法进行深度剖析。对于简单脚本的小游戏,深度剖析应该足够快。如果您发现对整个游戏的深度剖析会导致帧速率下降,以至于游戏几乎不能运行,则应该考虑不使用此方法,而使用下面描述的方法。当您设计游戏并决定如何最佳实现关键特性时,您可能会发现深度剖析更有帮助。注意,对于大型游戏,深度剖析可能会导致Unity耗尽内存,因此,深度剖析可能是不可能的。

手动分析脚本代码块的开销比使用深度分析的开销小。使用Profiler.BeginSampleProfiler.EndSample脚本函数来启用和禁用代码段的分析

查看同步时间(View SyncTime)

在一个固定的帧率或带垂直空白同步运行时,Unity的记录等待时间”等目标FPS”。默认情况下,分析器中没有显示此时间量。查看有多少时间花在等待,你可以切换“查看同步时间”。这也是一个衡量你有多少净空高度之前失去帧。

分析器时间轴(Profiler Timeline)

Profiler窗口的上部显示时间的性能数据。当你运行一个游戏时,每个帧都记录数据,最后几百帧的历史被显示出来。单击特定的框架将显示窗口下部的详细信息。根据当前选择的时间线区域显示不同的详细信息。

时间轴的垂直比例是自动管理的,并试图填充窗口的垂直空间。注意,为了在CPU使用区域中获得更多细节,可以删除内存和呈现区域。此外,可以选择时间线和统计区域之间的拆分器,并向下拖动,以增加用于时间线图的屏幕区域。


时间轴由几个方面组成:CPU使用、渲染和内存。可以通过单击面板中的“关闭”按钮删除这些区域,然后使用“配置文件”控件栏中的“添加区域”下拉重新添加这些区域。


注意,标记区域中的彩色方块可以控制是否显示关联的时间线。若要从显示中移除样本,请单击颜色键。键将变暗,数据将从图中删除。这对于识别CPU图中的尖峰的原因是有用的,例如。


WebGL的

您可以在WebGL上使用Unity分析器,就像在任何其他平台上一样。一个重要的区别是,你不能附加在WebGL中运行播放器,因为WebGL使用WebSockets进行通信,这将不允许浏览器端的传入连接。相反,您需要在构建设置中使用“Autoconnect Profiler”复选框。还要注意的是,绘制调用目前不能用于WebGL的剖析。

远程分析(Remote Profiling)

为了在另一台设备上运行游戏,或者在另一台计算机上运行Unity播放器,可以将Unity编辑器连接到其他设备或计算机。下拉式Active Profiler显示在本地网络上运行的所有Unity播放器。这些球员是确定的球员类型和运行播放器的主机名”iphoneplayer(Toms iPhone)”。

要连接到Unity播放器,必须将Unity播放器作为Development build (菜单:File > Build Settings……)启动。

检查对话框中的Development Build选项。从这里您还可以检查Autoconnect Profiler在启动时编辑器和播放器自动连接。

iOS版

通过以下步骤在iOS设备上启用远程分析:

  1. 将您的iOS设备连接到您的WiFi网络。(Profiler使用本地WiFi网络将设备的性能分析数据发送到Unity编辑器。)
  2. 在Unity Editor的Build Settings对话框中(菜单:File > Build Settings ...),勾选Autoconnect Profiler复选框。
  3. 通过电缆将设备连接到Mac。在Unity Editor的Build Settings对话框(菜单:File __> __ Build Settings ...)中,勾选Autoconnect Profiler复选框检查并选择Build&Run
  4. 在设备上启动应用程序时,在Unity编辑器(窗口 > 分析器)中打开Profiler窗口。

如果使用防火墙,则需要确保端口54998到55511在防火墙的出站规则中处于打开状态 - 这些是Unity用于远程分析的端口。

注意:有时Unity编辑器可能不会自动连接到设备。在这种情况下,您可以通过选择适当的设备从Profiler窗口Active Profiler下拉菜单启动Profiler连接。

Android的

有两种方法可以在Android设备上启用远程分析:WiFi或ADB

对于WiFi分析,请按照下列步骤操作:

  1. 确保在Android设备上禁用移动数据。
  2. 将Android设备连接到WiFi网络(Profiler使用本地WiFi网络将设备的性能分析数据发送到Unity编辑器。)
  3. 通过电缆将设备连接到Mac或PC。检查Unity的Build Settings对话框中的Development BuildAutoconnect Profiler复选框,然后在Unity Editor中点击Build&Run
  4. 在设备上启动应用程序时,在Unity编辑器(菜单:Window > Profiler)中打开Profiler窗口。
  5. 如果Unity Editor无法自动连接到设备,请从Profiler窗口的Active Profiler下拉菜单中选择适当的设备。

注意: Android设备和主机(运行Unity编辑器)必须位于相同的子网上才能使设备检测正常工作。

对于ADB分析,请按照下列步骤操作:

  • 将设备通过电缆连接到Mac或PC,并确保ADB识别设备(即在adb设备列表中显示)。
  • 在Unity Editor的Build Settings对话框(菜单:File __> __ Build Settings ...)中,选中Development Build__checkboxcheck并选择 Build&Run__。
  • 在设备上启动应用程序时,在Unity编辑器(菜单:窗口 > 分析器)中打开Profiler窗口。
  • 从Profiler Window Active Profiler下拉菜单中选择AndroidProfiler(ADB@127.0.0.1:34999)注意:当您点击Build&Run时,Unity Editor会自动为您的应用程序创建一个adb隧道。如果要分析另一个应用程序,或者重新启动adb服务器,则必须手动设置此隧道。为此,请打开终端窗口/ CMD提示符并输入:
adb forward tcp:34999 localabstract:Unity-{insert bundle identifier here}

注意:下拉菜单中的条目仅在所选目标是Android时才可见。

如果使用防火墙,则需要确保端口54998到55511在防火墙的出站规则中处于打开状态 - 这些是Unity用于远程分析的端口。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念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

推荐阅读更多精彩内容