Unity性能优化工具介绍

news2024/11/25 10:02:28

文章目录

  • 一.Stats组件
        • 1.Audio音频的数据组件:
        • 2.图形数据
  • 二.Profiler 性能分析器


一.Stats组件

Unity自带Statistics(统计数据),Game视窗中点击Stats打开
在这里插入图片描述

1.Audio音频的数据组件:

在这里插入图片描述

1):Level 声音强度
单位是分贝(dB) 表示音频听声音的大小,是闪烁波动的.

2):SDPload 数据信息负载
数字信号处理的负载 播放的音频越多,越复杂,声音的采样就或高.避免负载或高.

3):Clipping 音频裁剪
音频裁剪情况.当音频信息超过设备支持的最大范围后,该音频信息会被裁剪.坐而会有有一定程度的失真.

4):Staram load 流式负载
表示音频采用流式加载的负载情况,即边听边下载情况下的音频的负载情况.

2.图形数据

在这里插入图片描述

1):FPS 帧率
表示1秒内播放的的画面的数量,用于判断画面的流畅度.一般60以上为流畅.45以上为比较流畅,30以下则会开始会有卡顿感.
这个数值不是越高越好,太高容易导致显卡发热.

2):CPU 单帧处理时长
表示CPU处理一帧所用的时间.
例如: CPU main0.7ms render thread 0.7ms 主线程花费0.7毫秒(主线程主要负责游戏逻辑的更新,用户输入,对像更新,碰撞检测等.)
渲染线程花费0.7毫秒 渲染线程负责显示游戏画面.

3):Batches调用绘制批次数
即CPU调用绘制(Draw Call)的批次数,应该尽量避免过大.

4):Saved by batching 被合并次数
有多少个Draw Call合并到了指次 , 此数据越大表示优化的越好.

5):Tris 面数
Triangle(三角形)当前帧射线机内三角型数量

6):Verts
Vertex(顶点)当前帧射线机内顶点数量

7):Screen 屏幕
当前屏幕的分辨率及内存,应当避免此数据太大.

8):SetPass calls 切换着色器通道次数
渲染中一个Shader可以包含多个角色器通关(Shader pass) , 角色器通道切换会有一定性能消耗.应该避免此数据过大.

9):Shadow casters 产生阴影数量
画面中有多少个对像产生了阴影.同一对像也可能多次产生阴影.应尽量避免此数据过大.

10):Visible skinned meshes 可见蒙皮网格
可以见范围内,蒙皮网格的数量

11):Animation components playing
当前播放的Animation数量

12):Animatior components playing
当前播放的Animator数量
在这里插入图片描述

使用代码UnityStats.可以动态查看以上数据


二.Profiler 性能分析器

1.通过菜单栏Window > Analysis > Profiler 打开
在这里插入图片描述

2.这里我们可以看到窗口分为,CPU Rendering Memory 等信息…
我们可以通过Profiler Modules 选择需要收集信息的模块
在这里插入图片描述

3.这里可以看查总收集帧数 和 当前查看帧数.用帧数控制可以操控上一帧,下一帧,及最后一帧.
在这里插入图片描述

4.当点击某个模块某帧时,左边对应颜色数值会显示对应消耗的量
在这里插入图片描述

5.下面的窗口也可以查看当前帧的详细信息
在这里插入图片描述

6.当重新开始收集时,需要点击Clear新空之前收集的帧数.否则将会从之前收集的帧数后面开始继续收集资料.
在这里插入图片描述

7.收集模式,通常选择playmode,再游戏开始运行后点击小圆圈开始录制.
在这里插入图片描述

8.点击Clear On Play按钮可以每次开始运行时自动清空上次运行的数据
9.点击窗口右上解的保存按钮可以导出文件记录本次收集到的信息
10.点击窗口右上解的导入按钮可以导入,文件记录的收集到的信息
11.点击Deep Profile性能以收集自身编辑方法所消耗的性能
在这里插入图片描述

选择Hierarchy窗口,在右边栏搜索框中也可以搜索对应的方法查看.
Totle : 当前方法占用当前模块总消耗量的百分比
Self : 当前模块占自身代码占用的性能
Calls : 被掉用的次数
GC Alloc : GC allocation 垃圾回收机制,分陪了多少内存
Time ms : 用了多少时间执行这个方法
Self ms : 执行自身代码用的时间

在性能分析中,以下是调用了自身和别人的代码的边别.
在这里插入图片描述

12.使用Profiler.BeginSample及EndSample查看局部代码性能
在这里插入图片描述

在Profiler中搜索这个名字就能查看此段代码所消耗的性能.
在这里插入图片描述

13.Unity官方文档中可以查看更详细的内容
https://docs.unity3d.com/cn/current/Manual/ProfilerWindow.html

14.调用栈CallStatcks
调用栈是计算机在执行过程中记录调用的一种数据结构.
以先进后出的的顺序记录每个函数被调用情况.
在这里插入图片描述
勾选后可以在下面搜索内容.
GC.Alloc表示GC的内存分配情况
UnsafeUtility.Malloc用于在内存中分配未初始模块.只有在处理非托管内存的特定才场景下才会用到
JobHandle.Complete.这里是完成Job System的特定任务.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1685699.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS基础(第五天)

目录 定位 为什么需要定位 定位组成 边偏移 静态定位 static(了解) 相对定位 relative 绝对定位 absolute(重要) 子绝父相的由来 固定定位 fixed (重要) 粘性定位 sticky(了解&#xff…

C++候捷stl-视频笔记1

认识headers、版本、重要资源 STL的核心思想是泛型编程 新式头文件内的组件封装在命名空间std中: using namespace std; using std::cout;或std::vector vec; 旧式头文件内的组件不封装在命名空间std中 注:不建直接使用using namespace xxx,如果使用的…

文章解读与仿真程序复现思路——电力系统保护与控制EI\CSCD\北大核心《基于改进Q学习算法和组合模型的超短期电力负荷预测》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

Llama 3 CPU推理优化指南

备受期待的 Meta 第三代 Llama 现已发布,我想确保你知道如何以最佳方式部署这种最先进的 (SoTA) LLM。在本教程中,我们将重点介绍如何执行仅权重量化 (WOQ) 来压缩 8B 参数模型并改善推理延迟,但首先,让我们讨论一下 Meta Llama 3…

贴片反射式红外光电传感器ITR8307

红外光电传感器ITR8307 ITR8307外形 特性 快速响应时间 高灵敏度 非可见波长 薄 紧凑型 无铅 该产品本身将保持在符合RoHS的版本内 描述 ITR8307/S18/TR8是一种光反射开关,它包括一个GaAs IR-LED发射器和一个NPN光电晶体管,该晶体管具有短距离的高…

基于 Milvus Cloud + LlamaIndex 实现初级 RAG

初级 RAG 初级 RAG 的定义 初级 RAG 研究范式代表了最早的方法论,在 ChatGPT 广泛采用后不久就取得了重要地位。初级 RAG 遵循传统的流程,包括索引创建(Indexing)、检索(Retrieval)和生成(Generation),常常被描绘成一个“检索—读取”框架,其工作流包括三个关键步…

C++实现图的存储和遍历

前言 许多新手友友在初学算法和数据结构时,会被图论支配过。我这里整理了一下图论常见的存储和遍历方式,仅供参考。如有问题,欢迎大佬们批评指正。 存储我将提到四种方式:邻接矩阵、vector实现邻接表、数组模拟单链表实现的前向星…

FFmpeg开发笔记(三十)解析H.264码流中的SPS帧和PPS帧

《FFmpeg开发实战:从零基础到短视频上线》一书的“2.1.1 音视频编码的发展历程”介绍了H.26x系列的视频编码标准,其中H.264至今仍在广泛使用,无论视频文件还是网络直播,H.264标准都占据着可观的市场份额。 之所以H.264取得了巨大…

完美解决原生小程序点击地图markers上的点获取不到对应的坐标信息

需求:地图上有多个markes点,点击每一个获取对应的数据,再根据当前的坐标信息去调用导航。 出现的问题:每次点击的时候获取不到对应的坐标信息,获取到的信息显然不是想要的 原因: 因为你的id不是number类型&…

线上虚拟纪念馆的便利与优势,全天候开放的数字化历史体验

一、搭建线上虚拟纪念馆的意义 在现代社会中,线上虚拟纪念馆越来越受到人们的关注和欢迎。传统纪念馆需要大量的物理空间和资源,而线上虚拟纪念馆则突破了这些限制,提供了更多的可能性和优势。首先,线上虚拟纪念馆能够更好地保存和…

【有手就行】使用你自己的声音做语音合成,CPU都能跑,亲测有效

此文介绍在百度飞桨上一个公开的案例,亲测有效。 厌倦了前篇一律的TTS音色了吗?打开短视频听来听去就是那几个声音,快来试试使用你自己的声音来做语音合成吧!本教程非常简单,只需要你能够上传自己的音频数据就可以(建议…

Mac虚拟机工具 CrossOver 24.0.0 Beta3 Mac中文版

CrossOver是一款在Mac上运行Windows应用程序的软件,无需安装虚拟机或重启计算机,简化了操作过程,提高了工作效率,为用户带来便捷体验。前往Mac青桔下载,享受前所未有的便利和高效。摘要由作者通过智能技术生成 CrossOv…

JVM严镇涛版笔记【B站面试题】

前言 2023-06-19 18:49:33 出自B站 灰灰的Java面试 枫叶云链接:http://cloud.fynote.com/s/4976 JVM面试题大全 Lecturer :严镇涛 1.为什么需要JVM,不要JVM可以吗? 1.JVM可以帮助我们屏蔽底层的操作系统 一次编译&#xff0c…

当代人工智能三教父——深度学习三巨头

文章目录 引言 人物介绍 突出贡献 专业名词解释 引言 今天下午闲来无事翻阅了一下csdn首页的头条文章——《27 岁天才创始人 Joel Hellermark 分享了自己和“AI 教父” Geoffery Hinton 的最新采访》 感觉挺有意思,就从头到尾的看了一遍,里面有很多…

6.1 if语句

计算机语言和人类语言类似,人类语言是为了解决人与人之间交流的问题,而计算机语言是为了解决程序员与计算机之间交流的问题。程序员编写的程序就是计算机的控制指令,控制计算机的运行。借助于编译工具,可以将各种不同的编程语言的…

免费分享一套微信小程序旅游推荐(智慧旅游)系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】,帅呆了~~

大家好,我是java1234_小锋老师,看到一个不错的微信小程序旅游推荐(智慧旅游)系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序旅游推荐(智慧旅游)系统(SpringBoot后端Vue管理端) Java毕业设计…

谷歌B端独立站建站推广,外贸建站训练营,傻瓜式教学

做外贸方法重要,工具更重要,而这些背后的规则和套路,身边的人往往不会告诉你,成功的人更不会教给你。本套课程主要内容包括:一套体系化的独立站建站方法,学会“高效学习”避免无效努力,拥有独立…

144.栈和队列:有效的括号(力扣)

题目描述 代码解决 class Solution { public:bool isValid(string s) {// 如果字符串长度为奇数&#xff0c;不可能是有效的括号字符串if(s.size() % 2 ! 0) return false;// 使用栈来存放括号stack<char> st;// 遍历字符串中的每一个字符for(int i 0; i < s.size();…

redis小知识

AOF与RDB的区别 AOF (Append Only File) 和 RDB (Redis Database) 都是Redis中的持久化机制&#xff0c;但有以下几点不同之处&#xff1a; 内容格式&#xff1a;AOF 以日志的形式记录所有写操作命令&#xff0c;而 RDB 则是在指定的时间间隔内对数据库进行快照&#xff0c;将数…

柏拉图式表征:人工智能深度网络模型是否趋于一致?

人工智能模型是否正在向现实的统一表征演进&#xff1f;柏拉图表征假说认为&#xff0c;人工智能模型正在趋同。 麻省理工学院最近的一篇论文引起了我的注意&#xff0c;因为它提出了一个令人印象深刻的观点&#xff1a;人工智能模型正在趋同&#xff0c;甚至跨越了不同的模态…