Unity Profiler 介绍

这是我在《Unity游戏优化 (第2版)》看的,记录一下~

Unity Profiler 是啥?
是内置的一种方便的方法,通过在运行时为大量的Unity3D子系统生成使用情况和报告统计,来缩小性能瓶颈的搜索范围

可以给不同的子系统收集如下数据:
1.CPU消耗量(每个主要子系统)
2.基本和详细的渲染和GPU信息
3.运行时内存分配和总消耗量
4.音频源/数据的使用情况
5.物理引擎(2D和3D)的使用情况
6.网络消息传递和活动情况
7.视频回放的使用情况
8.基本和详细的用户界面性能
9.全局光照统计数据


通常有两种使用Profiler工具的方法:
1.指令注入(instrumentation)
2.基准分析(benchmarking)

通过观察目标函数调用的行为,在哪分配了多少内存,来密切观察应用程序的内部工作情况
(本身也会带来一定损耗)
(如果是在unity编辑器中进行分析的,会消耗更多的CPU和内存,因为需要更新界面,渲染额外的窗口)

Unity在开发模式(BuildSetting里面的 Development Build 标识决定),会启用附加编译标识,导致应用程序运行时生成特殊事件,这些事件会被分析器记录并存储

所以在分析之前,应该先体验一段程序本来的体验,在性能明显变差的时候再持续关注一段时间。
这个操作叫 基准分析 ,通常重要指标是:渲染帧率(Frames Per Second,FPS)、总体内存消耗和CPU活动的行为方式(寻找活动中较大的峰值),以及CPU/GPU的温度。
因为这些用户感知都是比较明显的,我们看起来也很明显,能节省大量时间

并且不要在Editor模式下生成的数据作为基准数据,因为Editor模式会带来一定额外开销,
也可能会比独立app更快,比如:序列化数据(音频文件、预制块和Scriptable Object)


窗口介绍:

1.Profiler控件
顶部的选项栏,包括多个下拉和开关按钮
作用:决定要分析什么数据,以及在每个子系统中收集数据的深度

AddProfiler
添加额外区域的

Record
启用会记录数据(只有运行才能记录)
如果开启了 Profile Editor 则收集的是编辑器的数据

DeepProfile
普通的分析只记录常见的Unity回调(Awake、Start、Update和FixUpdate)所返回的时间和内存分配信息
启用 Deep 选项可以用更深层次的指令重新编译脚本,允许它统计每个调用方法
(会导致指令注入成本比正常情况要大很多,并要使用大量内存,因为运行时收集的是整个调用堆栈的数据)
并且需要完全重新编译整个项目,才能开始分析,避免在测试中来回切换

无需在大多数测试用启用这个
一般在默认的无法提供足够详情以指出问题根源时,启用这个选项
当发现问题了,确定成小场景性能的时候,可以使用这个选项来隔离某种行为

Profile Editor
收集编辑器本身的数据(主要是针对编辑器脚本)

Connected Player
选择要分析的实例

Clear
清楚当前时间轴视图种德所有分析数据

Load
加载之前保存过的Profiler数据

Save
将当前显示在时间视图上的所有Profiler数据保存到文件中。
一般性能出现峰值的时候,暂停应用并保存数据,以便后续分析

帧选择
FrameCounter,显示已经分析了多少帧以及当前时间轴中选的了那一帧

2.时间轴视图
显示运行期间收集的分析数据,将其组织到一系列区域中
当选中一个区域时,在选中帧的细分视图中,会显示子系统的更多详细信息
单击时间轴视图的图形部分,会显示一条垂直的白线,说明选中了哪一帧

3.细分视图控件栏
根据时间轴选的区域,显示不同的下拉框和切换按钮选项

4.细分视图
根据时间轴选择的区域,显示不同的信息

当为CPU使用区域时,显示CPU所有使用情况和统计数据
(比较复杂,但是很有用的。因为包括了Unity大量子系统和MonoBehaviour组件、相机、物理、渲染、用户界面、音频处理、Profiler等)

还有三种不同的模式:
a.Hierarchy 模式
合并类似的数据元素和Unity的全局函数调用
BeginGUI() 和 EndGUI() 会合并到一起
用途:看一下哪个函数调用会花费最多的时间

b.Raw Hierarchy 模式
不会合并
用途:统一某个全局方法调用了多少次

c.Timeline 模式
垂直组织到不同的部分,代表运行时的不同线程
水平轴表示时间,宽方块消耗的CPU时间更多

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