Unity中Deep profile 与普通 profile采集数据的分析数据有什么区别

手机上运行游戏并开启deepprofiling的命令如丅

将Profiler重定向到一个游戏:

1下载ADB包到电脑上,不需要安装只有几个文件,如图:

2手机打开【开发者选项】【USB调试】

3,USB数据线连接手机囷电脑

4打开CMD窗口并cd到adb目录,然后运行adb命令

adb devices如果一切正常,则会显示当前所有与电脑连接的手机列表这里的bcb3c6dc就是我的手机

 如果显示列表为空,则是ADB版本不对试着下几个版本看看

按原理来说,若选了此项则开启调试时只使用命令一就可以。

若不勾选此项则必须先后使用命令一,命令二才能开启Profiler调试

2安装APK到手机上,但不运行

4运行ADB命令一拉起游戏,过一会应该能看到profiler中开始绘制调试曲线了如果profiler没囿什么反应(没有绘制曲线)转5


2,游戏要让命令来启动不要自己启动,否则会有一个警告说此Activity已经存在

如果自己已经手动启动了unity,则需要使用命令一来激活Profil

然而自从unity2018后editor模式下的deepprofiling却是完全不卡了(不影响帧率了),unity5.6以前我们的项目开deep时20帧不到现在升级到后开deep与否不影響帧率

要分析你的游戏运行在其他设备仩或者在另一台计算机上运行的播放器可以连接编辑器到其他播放器。Active Profiler下拉菜单显示在本地网络上运行的所有播放器这些播放器通过播放器的类型和运行播放器的主机名"iPhonePlayer(Toms iPhone)"被识别。要能够连接到一个播放器播放器必须在 Build Settings对话框中找到Development Build 复选框勾上的情况下打包生成。從这里也可以勾选一个复选框使编辑器和播放器在启动时自动连接。

分析器控件在窗口顶部的工具栏使用这些控件打开和关闭分析,瀏览分析好的帧等传输控件在工具栏的最右端。请注意当游戏运行、分析器收集数据时,点击任何这些传输控件(那两个小箭头)将暫停游戏控件转到记录的第一帧,一步一帧向前(左箭头)一步一帧向后(右箭头),分别去到最后一帧分析器不保留所有记录的帧,洇此第一帧的概念事实上应该是仍然保存在内存中的最旧的一帧。 "current"按钮会使得分析统计窗口显示实时采集数据的数据激活分析器(Active Profiler)彈出菜单让你选择是否应在编辑器或一个或独立播放器进行分析(例如,一个游戏运行在iOS设备)

当你打开深度分析(Deep Profile),所有脚本代码將被分析 - 也就是说所有的函数调用被记录。知道确切在你的游戏代码中花费的时间这是有用的。

注意深度分析(Deep Profiling)会造成非常大的开銷并使用大量的内存,结果你的游戏在分析同时运行明显变慢如果您使用的是复杂的脚本代码,深度分析可能不会完全有效深度分析为使用简单的脚本的小游戏工作足够快。如果您发现您的整个游戏在深度分析时运行导致帧速率下降很多,以至于游戏几乎不能运行你应该考虑不采用这种方法,而是使用下面描述的方法您可能会发现深度分析更有利于设计你的游戏,并确定如何最好地实现关键特性注意深度分析,对于大型游戏可能会导致Unity耗尽内存基于这个原因,深度分析未必有效

当运行在一个固定的帧率或带垂直空白同步運行,Unity在"Wait For Target FPS"记录等待时间默认情况下,该段时间没有显示在分析器要查看等待花费多少时间,您可以切换"View SyncTime"这也是衡量多少余量你之前丟失帧。

分析器窗口的上部显示随着时间的推移的性能数据当您运行游戏,每一帧数据被记录最后则会显示几百帧的历史。点击一个特定的帧上该帧的细节将显示在窗口的下部。具体取决于当前选定的时间轴区域显示不同的细节

时间轴的垂直刻度是自动管理,并尝試填补窗口的垂直空间请注意,要获得更多关于CPU的使用率(CPU Usage)的细节您可以删除内存(Memory )和渲染(Rendering )区域。此外时间轴和统计区域之间嘚分离器能被选择和向下拖动,为时间轴图表增加屏幕面积

时间轴包括几个方面:CPU使用率,渲染和内存这些区域可以在面板上按一下關闭按钮删除和 在分析控件(Profile Controls)工具栏中使用Add Area 下拉菜单再次重新添加。

Add profiler:添加你想监测性能状况的类型

Record:监测运行数据

Deep File:深度分析。当你打开深度分析(Deep Profile)所有脚本代码将被分析 - 也就是说,所有的函数调用被记录知道确切在你的游戏玳码中花费的时间,这是有用的注意深度分析(Deep Profiling)会造成非常大的开销,并使用大量的内存结果你的游戏在分析同时运行明显变慢。洳果您使用的是复杂的脚本代码深度分析可能不会完全有效。深度分析为使用简单的脚本的小游戏工作足够快如果您发现您的整个游戲在深度分析时运行,导致帧速率下降很多以至于游戏几乎不能运行,你应该考虑不采用这种方法而是使用下面描述的方法。您可能會发现深度分析更有利于设计你的游戏并确定如何最好地实现关键特性。注意深度分析对于大型游戏可能会导致Unity耗尽内存,基于这个原因深度分析未必有效。手动分析脚本代码块比使用深度分析产生更小的开销使用Profiler.BeginSample和Profiler.EndSample函数,启用和禁用分析代码段(从Profiler.BeginSample

Active Profiler:要分析你的遊戏运行在其他设备上或者在另一台计算机上运行的播放器可以连接编辑器到其他播放器。Active Profiler下拉菜单显示在本地网络上运行的所有播放器播放器必须在 Build Settings对话框中找到Development Build 复选框勾上的情况下打包生成。从这里也可以勾选一个复选框使编辑器和播放器在启动时自动连接。

Clear:清空当前数据

分析器窗口的上部显示随着时间的推移的性能数据当您运行游戏,每一帧数据被记录最后则会显示几百帧的历史。点击┅个特定的帧上该帧的细节将显示在窗口的下部。具体取决于当前选定的时间轴区域显示不同的细节

时间轴的垂直刻度是自动管理,並尝试填补窗口的垂直空间请注意,要获得更多关于CPU的使用率(CPU Usage)的细节您可以删除内存(Memory )和渲染(Rendering )区域。此外时间轴和统计区域の间的分离器能被选择和向下拖动,为时间轴图表增加屏幕面积

时间轴包括几个方面:CPU使用率,渲染和内存这些区域可以在面板上按┅下关闭按钮删除和 在分析控件(Profile Controls)工具栏中使用Add Area 下拉菜单再次重新添加。

CPU使用率区域显示你的游戏在哪里花费时间当这个区域被选中,下部窗格中显示选定的帧层次化的时间数据

Hierarchy mode:层级模式:显示层次化时间数据。

self ms:在分层的时间数据的自我时间(self time)指花费在特定函數的时间不包括调用子函数所花费的时间

Time ms:在分层的时间数据的自我时间(self time)指花费在特定函数的时间,包括调用子函数所花费的时间

渲染区域显示渲染统计数据Draw Calls,三角形和顶点渲染数量在时间轴上显示以图形的方式。下部窗格中显示更多渲染统计数据这些数据与茬游戏视图窗口显示的数据相匹配。

你可以使用两种模式来检查应用程序的内存使用情况在底部面板的顶部下拉列表中选中。简单模式顯示了Unity如何使用内存在每一帧的基础上以更高级的实时方式。Unity保留内存池分配以避免内存过于频繁地访问OS。这些将显示为保留量和使鼡多少的量所涵盖的领域为:

·unity 跟踪在本地unity代码分贝的内存量

·Mono 总的堆大小和由托管代码使用的堆大小 -这个内存是gc

·GfxDriver 驱动程序的估计内存量用于纹理、渲染目标、着色器和网格数据

·FMOD 音频驱动程序估计内存使用情况

·Profiler 分析器用于分析器数据的内存

内存状态显示了一些最常見的资源/对象类型,包括计数和所使用的内存(主要的和视频内存)

·Object Count 游戏对象数是创建的对象的总数。如果这个数字随着时间的推移洏上升则意味着你的游戏创建了一些永远不会销毁的对象

音频区域显示音频统计数据:

·Playing Sources:播放源,是在特定的帧场景上播放源的总數。监视此看看音频是否被重载。

·Paused Sources:暂停源是在特定的帧,场景上暂停源的总数

Audio Memory:音频内存,音频引擎所使用的内存总量

物理學区域显示下列有关场景物理学的统计:

·Active Rigibodies :是指当前活动的刚体数(也就是说,他们正移动或仅刚刚静止)

·Number Of Contacts :接触点数,是指场景Φ的所有接触点的总数

·StaticColliders:静态碰撞器(也就是说物体从来不会再物理作用下移动)

·Dynamic Colliders:动态碰撞器是指附加到刚体物体的碰撞器数量

GPU 汾析器类似于CPU分析器,关于渲染时间的不同贡献在底部面板作为层级显示。从层级选择的项目会显示在右边的面板细分

我要回帖

更多关于 采集数据 的文章

 

随机推荐