Unity Profiler 详细解析(一)
Overview:
. Profiler简介
. Profiler各模块介绍
. 各平台下Profiler的使用
. 基于Profiler的优化定位
. Profiler的主要参数详解
. Profiler案例
Profiler简介
Profiler 是Unity中分析性能开销的工具
• 各种开销一览无遗
• 可跨平台使用(Web、PC、iOS、Android、WP)
• 只有Unity Pro版本才开启该功能

Profiler各模块介绍
Profiler 包含6块内容的分析
• CPU Usage
• GPU Usage
• Memory
• Rendering
• Audio
• Physics
• Unity 4.1 版更新内容
• 提供更细节的Memory分析
• 可通过IP地址来监视游戏的运行状况
• Unity 4.2 版更新内容
• 对象引用关系的显示

Profiler各模块介绍
*********************CPU Usage********************
1. 主要函数调用的CPU时间开销 : (1)
1.1.最耗时的操作会显示在Hierarchy面板的最上方 (2)
2. Mono分配内存的情况 :
2. 1. 在GC Alloc栏 (3)

3. Profiler可以自定义需要统计的代码块
3.1. 使用Profiler.BeginSample 和 Profiler.EndSample
4. Deep Profiling
4.1 同样使用之前的代码作为例子,在开启Deep Profiling后Profiler里的内容变得更为详细
*********************GPU Usage********************
1. 统计Drawcall的数量及耗费时间
2. Profiler中Drawcall是广义上的Drawcall,包含:
2. 1.GPU Stage切换
2. 2. Clear操作
2. 3.将顶点数据传输到GPU的开销
2. 4. 绘制调用(狭义上的Drawcall)
2. 5. Rendering模块和Game Statistics里统计的是这种Drawcall

3. Memory Profiler
3.1 查看内存使用细节
3.1.1 点击 可看各种资源内存占用的情况
31.2 点击后,获得当前内存情况。
3.2 内存引用关系图
3.2.1 可以观察到一个对象在哪里被引用,利于检测内存泄露
各平台下Profiler的使用
*********************Editor*******************
1. 在Window/Profiler菜单下可打开Profiler窗口
2. 如果在编辑器下运行游戏,可直接看到Profiler信息
3. 一些常用的操作
![]()
3.1Recored 记录或暂停
3.2 Deep Profile 深度Profiling,分析更多细节
3.3Profile Editor 是否记录Editor相关的开销
3.4Active Profiler 激活指定的目标进行Profiling
3.5Clear 清空已有的Profiler信息
3.6Frame 帧
*********************针对发布的程序做Profiling*******************
- 勾选”Development Build”和”Autoconnect Profiler”选项

2.如果发布的程序在本机上执行,Profiler会自动连接;
3.如果在其他机器上执行,需要在Active Profiler处输入IP进行连接。

4. Profiler连接目标平台所使用的端口
• MulticastPort : 54998
• ListenPorts : 55000 - 55511
• Multicast(unittests) : 55512 - 56023
5. IOS/Android设备
• 在Unity的Building Setting中勾选Autoconnect Profiler及Development Build
• 发布游戏到目标设备
• 连接目标设备到Wifi网络,需要和运行Editor的PC在一个Wifi网段
• 运行设备上的游戏
• 在Editor的Profiler(Active Profiler)里输入设备的IP,进行远程连接
• 连接上后即可在Editor的Profiler窗口中查看Profiling的信息
*************在各个平台上做Profiling的注意事项**************
- 做Profiling时需要应用程序获得焦点
2. 如果自动连接不生效,请尝试手动设置IP连接,使用Active Profiler
3. 发布时勾上Development Build和Autoconnect Profiler
基于Profiler的优化定位
1. Pareto Analysis 帕累托分析法
1.1 20%的函数通常导致了 的性能问题
1.2 使用编辑器 来得到最有问题的函数调用,并且在第一时间优化它们

2. Profiler.BeginSample()/Profiler.EndSample()
2.1更加清楚地分析函数中的各个部分
3. Debug.Log
3.1 Debug.Log("Hello"); //输出字符串到控制台
3.1 Debug.Log("Hello",gameObject); //关联对象gameobject
相关文章:
Unity Profiler 详细解析(一)
Overview: . Profiler简介 . Profiler各模块介绍 . 各平台下Profiler的使用 . 基于Profiler的优化定位 . Profiler的主要参数详解 . Profiler案例 Profiler简介 Profiler 是Unity中分析性能开销的工具 • 各种开销一览无遗 • 可跨平台使用(Web、PC、iOS、Android、…...
BMS电池管理系统理论基础
目录 1 、锂离子电池特性分析 1.1、 锂离子电池工作原理 1.2 锂离子电池特性 (1)容量特性...
BLUE引擎变量数据分析
今天跟大家说一下BLUE引擎的变量运用,以及使用中的小细节。大家在使用变量的时候,自定义变量不要以P、G、M、I、D、N、A开头。 变量与变量之间的常用格式: SMALL M88 <$STR(G88)> ;检测私人变量M88,是否小于全局变量G88 LARGE M88 &l…...
第三章 C++的循环结构
系列文章目录 第一章 C的输入第二章 C的输出 文章目录 系列文章目录前言一、个人名片二、while三、do-while四、for总结 前言 今天来学循环结构! 一、个人名片 个人主页:睡觉觉觉得 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评…...
基于卷积优化优化的BP神经网络(分类应用) - 附代码
基于卷积优化优化的BP神经网络(分类应用) - 附代码 文章目录 基于卷积优化优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.卷积优化优化BP神经网络3.1 BP神经网络参数设置3.2 卷积优化算法应用 4.测试结果…...
【MATLAB源码-第50期】基于simulink的BPSK调制解调仿真,输出误码率。
操作环境: MATLAB 2022a 1、算法描述 1. Bernoulli Binary: 这个模块生成伯努利二进制随机数,即0或1。这些数字表示要传输的原始数字信息。 2. Unipolar to Bipolar Converter: 此模块将伯努利二进制数据从0和1转换为-1和1,这是BPSK调制的标…...
【Acwing166】数独(dfs+剪枝+位运算)超级详细题解!
本题思路来源于acwing算法提高课 题目描述 看本文需要准备的知识 1.dfs算法基本思想 2.位运算基础 3.对剪枝这个名词的大概了解 剪枝优化位运算优化 常见四种剪枝策略 首先考虑这道题的搜索顺序,很明显,可以随意选择一个空格子,分支为这…...
Docker Swarm 集群搭建
Docker Swarm Mode Docker Swarm 集群搭建 Docker Swarm 节点维护 Docker Service 创建 1.准备主机 搭建一个 docker swarm 集群,包含 5 个 swarm 节点。这 5 个 swarm 节点的 IP 与暂 时的角色分配如下(注意,搭建完成后会切换角色ÿ…...
Mac 开机提示Google LLC 注册 无法登录进入系统
Google LLC 会在电脑启动时提示如下弹窗,并要求登录谷歌账户进行验证 此时很明显没有用来进行验证的账号,所以需要关掉这个验证程序 从日志里面可以看到LLC启动了一个Tiny.app的程序 只需要想办法把这个程序删掉即可 关机 按住 Command R 开机 进入R…...
excel单元格各种组合求和
单元格如果连续选择的话使用冒号,不是连续选择使用逗号;sum(A1:A4)表示对A1到A4求和;sum(A1,A4)表示求A1A4的和; 如下图,求斜线上四个单元格的和,结果见下图; 求A列和C列全部单元格的和&#x…...
SysTick—系统定时器
SysTick 简介 SysTick—系统定时器是属于CM3内核中的一个外设,内嵌在NVIC中。系统定时器是一个24bit 的向下递减的计数器,计数器每计数一次的时间为1/SYSCLK,一般我们设置系统时钟SYSCLK 等于72M。当重装载数值寄存器的值递减到0的时候&#…...
ATPCS:ARM-Thumb程序调用的基本规则
为了使单独编译的c文件和汇编文件之间能够互相调用,需要制定一系列的规则,AAPCS就是ARM程序和Thumb程序中子程序调用的基本规则。 1、ATPCS概述 ATPCS规定了子程序调用过程中寄存器的使用规程、数据站的使用规则、参数的传递规则。为了适应一些特殊的需…...
Swift 判断 A B 两个时间是不是同一天,A 是不是 B 的昨天
1. 今天要做这个效果(在时间旁边显示今天,昨天) 2. Preview 3. Code: // 添加 今天 昨天 func show_today_yesterday(d: Date Date()) -> String {let calendar Calendar.currentlet today: Date Date()if calendar.isDate(today, inS…...
华为OD 高效的任务规划(200分)【java】A卷+B卷
华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入: 我用夸克网盘分享了「华为O…...
使用VGG框架实现从二分类到多分类
一.数据集的准备 与之前的不同,这一次我们不使用开源数据集,而是自己来制作数据集。重点需要解决的问题是对数据进行预处理,如每一个图片的大小均不同,需要进行resize,还需要对每一张图片打标签等操作。 数据集文件 …...
Ubuntu服务器配置qq邮箱发送信息
效果: 此处设置的是自己给自己发送,配合linux的cron实现定时触发发送事件的效果 实现过程: 安装邮箱客户端Postfix sudo apt-get install postfix配置Postfix:编辑Postfix的主要配置文件 /etc/postfix/main.cf,并在…...
HTML读书笔记
HTML的读书笔记 概述 Jack 2023.10.23 参考网站: w3school 在线教程 HTML 头部 | 菜鸟教程 本教程已教你如何使用 HTML 创建站点。 HTML 是一种在 Web 上使用的通用标记语言(并不是类似Python一样的编程语言)。HTML 允许你格式化文本&…...
初识Java
一、Java语言概述 1.1 Java是什么 Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义 不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境&a…...
bootstrap.properties中配置Nacos
bootstrap.properties用于在Spring Boot应用程序启动阶段加载外部配置 优先级高:在应用程序启动时首先加载,用于配置应用程序的基础设置,如配置数据源、日志、配置服务器 外部配置:加载外部配置源(如远程配置服务器&a…...
【CVPR 2023】Diffusion Models高分辨率长视频生成 Align your Latents
Diffusion Models专栏文章汇总:入门与实战 前言:CVPR 2023年的工作《Align your Latents: High-Resolution Video Synthesis with Latent Diffusion Models》实现了高帧率高分辨率长视频生成,并在保持时间一致性上做了很多工作。这篇博客详细解读一下背后的原理,并总结一下…...
【CTFshow-pwn系列】03_栈溢出【pwn 062】详解:受限缓冲区下的极简 Shellcode 注入与利用实战
本文仅用于技术研究,禁止用于非法用途。 Author: 枷锁 在上一关(pwn 061)中,我们利用程序主动泄露的栈基址,通过 gets 函数毫无限制地在内存中挥洒 Payload。但 CTF 的竞技场绝不会永远如此慷慨。 来到 PWN 062&#x…...
012、AI内容生成:AIGC的变现模式与版权迷思
012、AI内容生成:AIGC的变现模式与版权迷思 从一行报错开始 昨晚调试Stable Diffusion的LoRA模型,控制台突然抛出一行错误: RuntimeError: CUDA out of memory. Tried to allocate 4.12 GiB...这个场景太熟悉了——就像三年前调试TensorFlow…...
【限时解锁】2026奇点大会议程PDF+演讲PPT合集(含17场技术Demo实录链接),仅开放至本周日24点
第一章:2026奇点智能技术大会完整议程公布:50AI大咖齐聚上海 2026奇点智能技术大会(https://ml-summit.org) 由全球人工智能前沿研究机构与长三角AI产业联盟联合主办的2026奇点智能技术大会将于4月18日至20日在上海张江科学会堂举行。本届大会以“智能…...
从零到一:手把手教你用Python玩转ISO14443读卡(附完整代码与调试技巧)
从零到一:手把手教你用Python玩转ISO14443读卡(附完整代码与调试技巧) 在物联网和嵌入式开发领域,与智能卡进行通信是一项基础但关键的技能。ISO14443作为近场通信(NFC)的主流标准之一,广泛应用…...
SQL如何利用JOIN优化查询复杂的多维度指标_预索引关联键
WHERE条件放错位置会导致预索引失效,因优化器被迫全量JOIN后再过滤;应将关联表筛选条件移至ON子句或建立(status,id)复合索引,并用EXPLAIN验证索引使用。JOIN 时为什么 WHERE 条件放错位置会让预索引失效MySQL 或 PostgreSQL 中,J…...
MiniCPM-V 4.5本地部署指南:从环境配置到图片视频推理全流程(附常见错误排查)
MiniCPM-V 4.5本地部署实战:从零搭建到多模态推理全攻略 在人工智能技术日新月异的今天,能够处理图片、视频等多模态数据的模型正变得越来越重要。MiniCPM-V 4.5作为一款轻量级但功能强大的多模态大语言模型,凭借其仅80亿参数却能达到超越GPT…...
别再乱用@property了!Python属性装饰器的5个常见误区与正确姿势
别再乱用property了!Python属性装饰器的5个常见误区与正确姿势 在Python开发中,property装饰器常被误认为是简单的"方法转属性"工具,但它的真正价值远不止于此。许多开发者在使用时容易陷入表面理解的陷阱,导致代码出现…...
ADS1232IPWR如何把24位Σ-Δ ADC和PGA装进紧凑封装
1. 核心定位:24位Σ-Δ ADC,专为桥式传感器优化ADS1232IPWR是TI ADS123x系列的一员,是一颗精密24位Σ-Δ型模数转换器。它的“本职工作”非常明确:为桥式传感器应用提供完整的前端解决方案,包括电子秤、应变计和压力传…...
DDR5内存实战:如何优化读操作性能(附BL32模式配置指南)
DDR5内存实战:如何优化读操作性能(附BL32模式配置指南) 在服务器和高性能计算领域,内存子系统的性能调优往往是工程师们最关注的焦点之一。随着DDR5内存的普及,其更高的带宽和更低的功耗为系统性能带来了显著提升&…...
Go语言怎么做SSE推送_Go语言Server-Sent Events教程【速学】
Go写SSE handler需设Content-Type和Cache-Control头、逐行写data:并双换行、每次调Flush;须禁用Read/WriteTimeout、设IdleTimeout;用chansync.Map实现安全广播,监听r.Context().Done()防泄漏。Go怎么写一个能发SSE的HTTP handlerGo原生不带S…...
