UPL2-9——Physics 模块
UPL2-9——Physics 模块 关于物理模块相关,详见:U1L13——物理系统碰撞体相关,U2L13——物理系统范围和射线检测相关 Physics 模块 Physics(物理学)模块是专门用于监控 物理系统(3D 物理)运行状态与性能开销 的工具,它涵盖了 Rigidbody、Collider、碰撞检测、物理查询等运行时数据 主要帮助我们排查 3D 物理相关问题,在游戏中如果出现以下问题时,可以着重观察这里的内容: 碰撞相关逻辑不触发 性能异常抖动(可能是物理计算量太大) 射线检测变慢 物理不稳定 等等 总之,几乎所有和 3D 物理相关的问题,我们都可以通过该模块进行排查 Physics 中各参数功能的含义和作用 物理学(Physics)分析窗口 Physics Used Memory:当前物理系统使用的总内存量(包括碰撞体、刚体、内部缓存等) 如果持续上升或占用过高,可能存在碰撞体未销毁或分配过多的问题 Active Dynamic...
UPL2-8——Video 模块
UPL2-8——Video 模块 关于视频播放相关,详见:U4S3——视频播放 Video 模块 Video(视频)模块 是专门用于 分析游戏中视频播放性能和资源使用情况 的监视工具,主要作用是帮助我们排查和视频相关的问题 在游戏中如果出现以下问题时,可以着重观察这里的内容 视频播放卡顿、丢帧 视频延迟播放、没声音或黑屏 视频导致 CPU 性能下降 视频占内存过高 等等 总之,几乎所有和视频相关的问题,我们都可以通过该模块进行排查 Video 中各参数功能的含义和作用 视频(Video)分析窗口 Total Video Sources:场景中视频源的总数 判断是否创建了过多视频播放器组件 Playing Video Sources:场景中正在播放的视频源数量 判断是否有视频未正确开始播放 Pre-buffered frames:预缓冲帧的总数 帧数太少可能会导致播放卡顿 Total Video Memory:应用程序中的视频所使用的系统内存量 如果持续增长,说明未释放视频资源或分辨率过高 下方详细内容 Total Video...
UPL2-7——Audio 模块
UPL2-7——Audio 模块 关于 Unity 自带的音频播放相关,详见:U1L14——音效系统相关 Audio 模块 Audio(音频)模块 是用来分析和监控音频系统的性能表现的,包括音频播放、混音、音量、CPU 占用等关键信息 在游戏中如果出现以下问题时,可以着重观察这里的内容: 声音异常(音量小、失真、播放顺序错误等等)、缺失 声音卡顿、延迟、音画不同步 声音内存占用过高 等等 总之,几乎所有和音频相关的问题,我们都可以通过该模块进行排查 Audio 中各参数功能的含义和作用 音效(Audio)分析窗口 Playing Audio Sources:场景中在该帧播放的音频源的总数。此信息可用于监测音频是否过载。 该帧播放的音频源的总数超过 20~30 个时,在移动端可能导致声音丢失或性能下降 如果你听不到声音、某些音效丢失,可以看这里是否 AudioSource 数量太多 Audio Voices:该帧中使用的音频(FMOD 通道)语音数 若 AudioSource 多但 Voices 少,说明部分声音被“抢占”或“没被调度” Total...
UPL2-6——Memory Profiler Package
UPL2-6——Memory Profiler Package Memory Profiler Package Memory Profiler Package(内存分析器包),是 Unity 提供给我们的一个关于内存分析的独立工具 它可以用于检查 Unity 应用程序以及 Unity 编辑器的内存使用情况 我们可以使用它来捕获、检查、比较内存快照!它获取的是当前时刻,全局的内存情况 它和我们上节课学习的 Memory 模块都是用于分析内存的,但是他们的定位有所不同,功能深浅有所不同 对比项 Profiler - Memory 模块 Memory Profiler(独立工具) 实时监控 支持 主要用于快照分析 适用阶段 开发中持续观察性能 排查具体内存泄漏 / 激增问题 查看细节 粗略数据(贴图、网格、GC...
UPL2-5——Memory 模块
UPL2-5——Memory 模块 Memory 模块 Memory(内存)模块是 Unity 中用于监视 内存使用情况 的关键工具 它能帮助你识别哪些资源在占用大量内存,是否存在内存泄漏或垃圾回收频繁等问题 游戏开发中会造成内存开销的主要有: 纹理贴图 网格 音频/视频 动画 材质球和 Shader C# 托管堆内存 场景中的各 GameObject 以及各组件 等等 在游戏中如果出现以下问题时,可以着重观察这里的内容: 游戏卡顿、掉帧 表现:游戏突然变慢、不定期小卡顿、操作延迟等 可能原因:内存不足导致系统频繁进行 垃圾回收(GC),降低游戏帧率 闪退、崩溃 表现:玩着玩着突然黑屏退出、特定场景(如加载大地图)崩溃 可能原因:设备分配不出更多内存,系统强制杀掉进程 加载时间变长 表现:加载界面等待时间变长,场景切换明显卡顿 可能原因:加载资源时需要更多内存,系统调度与 GC 频繁运行。 发热严重、掉电快 表现:手机发烫严重、电池消耗快 可能原因:设备内存使用达到极限,系统/游戏频繁调度内存资源,CPU、GPU...
UPL2-4——Rendering 模块
UPL2-4——Rendering 模块 Rendering 模块 Rendering(渲染)模块,用于显示一帧渲染时的数据量(批次数、顶点数等) 在游戏中如果出现以下问题时,可以着重观察这里的内容 怀疑是因为 DrawCall 过高导致 CPU 性能问题(卡顿、掉帧) 在中低端手机上发热严重、掉电快 开启大量实时光照、粒子、动态对象后出现掉帧 画面复杂卡顿、简单不卡顿时 等等 Rendering 中各参数功能的含义和作用 渲染(Rendering) 分析窗口 在这里显示有关CPU和GPU和渲染相关的统计信息 Batches Count(批处理数): 该帧内批处理数量(DrawCall 次数),值越高,CPU 压力越大。推荐合批优化 SetPass Calls Count(SetPass 调用次数): 该帧内用于渲染游戏对象的着色器渲染通道(Pass)调用次数 即每帧需要切换 Shader / 材质状态的次数 值越高,GPU 状态切换开销大。尽量减少材质和渲染通道 Pass 的数量 Triangles...
UPL2-3——GPU Usage 模块
UPL2-3——GPU Usage 模块 本章内容涉及图形接口知识,相关内容可见:US1L7——必备的图形程序接口概念 本章还涉及一些 Shader 相关概念,具体可见:US——Unity Shader开发入门 GPU Usage 模块 GPU Usage(使用率)是 Unity Profiler 中最重要的性能分析模块之一,用于 分析 GPU(图形处理器)在一帧中在哪些渲染阶段上花了多少时间 游戏开发中会造成GPU开销的主要有: 几何处理:模型顶点相关处理 光照计算:阴影、反射等 渲染输出:Shader 处理、对象渲染、游戏画面显示 屏幕后处理 Shader 部分:屏幕画面特殊效果(模糊、黑白、景深等等) 纹理处理:采样、解压缩、贴图操作等 特效处理:粒子、流体、烟雾等等 等等 一般项目出现卡顿、掉帧问题、图像问题、发热、掉电快等情况可以着重排查 GPU 和 CPU 使用情况, 它们的异常表现几乎一致,根本原因通常是计算压力过大 GPU 和 CPU 计算的区别在于: CPU 专注于 游戏逻辑 处理相关(物理、脚本、AI、动画控制等等) GPU 专注于 图形渲染...
UPL2-2——CPU Usage 模块
UPL2-2——CPU Usage 模块 CPU Usage 模块 CPU Usage(使用率)是 Unity Profiler 中最重要的性能分析模块之一,用于展示 每一帧 CPU 所花费的时间,按类别详细划分不同系统的消耗情况,帮助开发者诊断性能瓶颈 游戏开发中会造成CPU开销的主要有: 脚本逻辑(我们编写的 C# 代码逻辑) 物理系统(Unity 内置的物理引擎 ) 动画计算(Unity 中的动画状态机、骨骼动画相关的混合采样计算等等) 渲染准备(计算物体是否可见、是否剔除、构建绘制命令,渲染命令提交工作等) 资源管理和加载(加载 AssetBundle、场景、纹理、网格、材质等元数据 等) GC(垃圾回收) UI系统(GUI、UGUI 中 UI 布局计算、事件派发、渲染数据的准备等) 导航与寻路 音频处理 输入检测 网络通讯 屏幕后处理 C# 部分 等等 一般项目出现卡顿、掉帧问题可以着重排查此处 CPU Usage 中个参数功能的含义和作用 CPU 使用率 分析窗口 在这里通过不同模块不同颜色表达,我们可以直观的看到每一个模块对 CPU...
UPL2-1——顶部页签
UPL2-1——顶部页签 Unity Profiler 顶部页签 Profiler Modules 模块列表 我们可以在这里设置性能检测哪些模块,可以在这里通过勾选和取消勾选来进行选择 Highlights:高光区域,会把可能存在问题的帧高亮显示(仅 Unity 6 及以上版本) CPU Usage:CPU 使用率 GPU Usage:GPU 使用率 Rendering:渲染相关 Memory:内存相关 Audio:音效相关 Video:视频相关 Physics:物理系统相关 UI:用户界面相关 UI Details:用户界面详细信息 Realtime GI:实时GI(光照相关) Virtual Texturing:虚拟纹理 File Access:文件访问 AssetLoading:资源加载 左下角设置按钮中可以自定义布局,添加局部子系统的性能分析相关 Restore...
UPL2——Unity Profiler
UPL2——Unity Profiler Unity Profiler Profiler 记录应用程序性能的多个方面并显示相关信息。使用此信息可以做出有关应用程序中可能需要优化的事项的明智决策,并确认所做的优化是否产生预期结果。 默认情况下,Profiler 会记录并保存游戏最近的 300 帧,并向您显示每帧的详细信息。您可以在“首选项”窗口(菜单:编辑 > 首选项)中增加其记录的帧数,最多可增加到 2000 帧。 注意:如果将此设置增加到较大的帧数,Profiler 的开销和内存使用量可能会显著增加,从而对性能产生更大影响。 可以检查脚本代码,以及应用程序如何使用某些资源(这可能会降低应用程序速度)。还可以比较应用程序在不同设备上的性能。 性能分析器具有几个不同的性能分析器模块,这些模块可以添加到性能分析会话中,从而获取有关渲染、内存和音频等方面的更多信息。 如何打开性能分析器窗口 Window ——> Analysis ——> Profiler 或 Profiler(Standalone...
