热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

UnityProfiler概述及Profilerwindow说明

unity,profiler,近程,通信,profiler

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

Profiler概述

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

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

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

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

有关使用该工具的提示

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

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

另请参阅:优化图形性能。

Profiler窗口

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

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

img_e67628f48b7511b376ec7262c19eeddf.png

img_2d841f277039937d5f93605379627e0b.png

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

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


    img_0238ad600d7f537e18a482077570723b.png
  • 连接真机上的选项
    img_ec8a46d437dd3f3a4b6a21f7df581048.png
  • 清除 载入 保存 对应的日志
    img_7d756f64cb5217016bfa7fefa8c49995.png

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

  • 逐帧调整面板
    img_27ae83ec7b0c745b33f0c7c0d48a0ee7.png

深度分析

img_bfbac3745f6386a869273d822542ead9.png

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

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

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

查看同步时间(View SyncTime)

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

分析器时间轴(Profiler Timeline)

img_6343549b712e61c402bcc2c988a95485.png

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

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


img_4eea21fb6ee8b2c42631803752c0d6fc.gif

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


img_ce027337737ed4b689ebea2dc54ca191.png

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


img_ac2d3cc23dec94862b771b30a9db51b2.png

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用于远程分析的端口。


推荐阅读
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 跑虚拟机的服务器要求:宿主机的BIOS开启VT支持,这样宿主机才能运行64位虚拟机。安装VmwarePlayer或者Workstation,或者vmwareESX。虚拟机要求(建议使用vmware ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • 本文介绍了自动化测试专家Elfriede Dustin在2008年的文章中讨论了自动化测试项目失败的原因。同时,引用了IDT在2007年进行的一次软件自动化测试的研究调查结果,调查显示很多公司认为自动化测试很有用,但很少有公司成功实施。调查结果表明,缺乏资源是导致自动化测试失败的主要原因,其中37%的人认为缺乏时间。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • 两个方案:1通过android.permission.READ_PHONE_STATE读取2通过短信过滤,读取手机号。按照第1个方案,AndroidManifest.xml需要添加< ... [详细]
  • Java手机看书软件(一)魔屏3.0魔屏(MoScreen)是一款手机漫画阅读器,可以查找、下载阅读多种格式的富媒体内容.魔屏3.0主要功能:漫画分类:支持分类浏览漫画名称、简介、 ... [详细]
  • 为了让用户体验更好,页面前端往往是通过ajax来进行数据处理;由于浏览器的设计原因每个域名下的连接有 ... [详细]
author-avatar
严志文在吉安_3fu
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有