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》实现了高帧率高分辨率长视频生成,并在保持时间一致性上做了很多工作。这篇博客详细解读一下背后的原理,并总结一下…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...
Visual Studio Code 扩展
Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后,命令 changeCase.commands 可预览转换效果 EmmyLua…...
Axure Rp 11 安装、汉化、授权
Axure Rp 11 安装、汉化、授权 1、前言2、汉化2.1、汉化文件下载2.2、windows汉化流程2.3、 macOs汉化流程 3、授权 1、前言 Axure Rp 11官方下载链接:https://www.axure.com/downloadthanks 2、汉化 2.1、汉化文件下载 链接: https://pan.baidu.com/s/18Clf…...
Redis专题-实战篇一-基于Session和Redis实现登录业务
GitHub项目地址:https://github.com/whltaoin/redisLearningProject_hm-dianping 基于Session实现登录业务功能提交版本码:e34399f 基于Redis实现登录业务提交版本码:60bf740 一、导入黑马点评后端项目 项目架构图 1. 前期阶段2. 后续阶段导…...
四、Sqoop 导入表数据子集
作者:IvanCodes 日期:2025年6月4日 专栏:Sqoop教程 当不需要将关系型数据库中的整个表一次性导入,而是只需要表中的一部分数据时,Sqoop 提供了多种方式来实现数据子集的导入。这通常通过过滤条件或选择特定列来完成。 …...
