Unity 性能分析
学习unity性能分析
在路上看风景
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
3.2 常量缓冲区
【代码】3.2 常量缓冲区。原创 2026-01-07 15:50:29 · 70 阅读 · 0 评论 -
3.1 DrawCall
DrawCall表示 "CPU准备渲染指令, 让GPU进行渲染的过程"1).配置"渲染状态"(告诉GPU渲染规则)CPU会把当前渲染需要的"规则"整理成数据, 发给GPU的渲染管线:a.深度测试/模板测试规则b.混合模式c.裁剪模式这些都是小量的状态标识/数值(比如用1/0表示开启/关闭深度测试), 不是"拷贝数据", 而是"设置GPU的寄存器/状态位"2).绑定"GPU资源句柄"(告诉GPU用哪个显存资源)原创 2026-01-07 15:45:00 · 119 阅读 · 0 评论 -
2.9 预热Shader
【代码】2.9 预热Shader。原创 2025-12-25 10:58:05 · 120 阅读 · 0 评论 -
2.8 预渲染
在游戏运行前或加载时, 提前将需要渲染的资源(如模型、纹理、着色器等)上传到GPU, 从而避免在游戏运行时首次使用该资源时出现卡顿1).问题来源:a.当游戏运行时, 一个模型(包括网格、纹理、材质等)第一次被渲染时, CPU需要准备数据并上传到GPU;这个过程包括:- 将网格数据(顶点、索引等)上传到GPU的顶点缓冲区和索引缓冲区- 将纹理数据上传到GPU的纹理资源- 编译着色器(如果之前没有编译过)并创建GPU上的着色器资源- 设置常量缓冲区等。原创 2025-12-25 10:46:39 · 161 阅读 · 0 评论 -
2.7 资源加载优化
【代码】2.7 资源加载优化。原创 2025-12-24 13:01:35 · 205 阅读 · 0 评论 -
2.6 禁用未使用的脚本和对象
【代码】2.6 禁用未使用的脚本和对象。原创 2025-12-24 11:08:16 · 92 阅读 · 0 评论 -
2.5 GameObject优化和容器选择
【代码】2.5 GameObject优化和容器选择。原创 2025-12-24 11:00:23 · 178 阅读 · 0 评论 -
2.4 本机到托管的桥接
1).本机到托管的桥接简介本机到托管的桥接表示"unity引擎底层代码(通常是c/c++)与托管代码(c#)之间的交互机制"a.本地代码(Native Code)- 主要是用c++编写的- 包括unity引擎的核心部分: 渲染引擎, 物理引擎, 音频系统等- 直接编译成机器码, 运行效率高- 与操作系统和硬件直接交互b.托管代码(Managed Code)- 主要是开发者编写的c#脚本- Unity IL2CPP模式下的C# 运行在 .net虚拟机(mono或il2cpp)原创 2025-12-23 13:10:57 · 255 阅读 · 0 评论 -
2.3 代码优化技巧
【代码】2.3 代码优化技巧。原创 2025-12-22 10:42:41 · 122 阅读 · 0 评论 -
2.2 频繁内存分配和垃圾回收对于CPU性能的影响
【代码】2.2 频繁内存分配和垃圾回收对于CPU性能的影响。原创 2025-12-19 17:33:35 · 209 阅读 · 0 评论 -
2.1 CPU脚本性能优化简介
【代码】2.1 CPU脚本性能优化简介。原创 2025-12-19 13:49:30 · 250 阅读 · 0 评论 -
1.19 UGUI的准备数据流程
【代码】1.19 UGUI的准备数据流程。原创 2025-12-11 17:15:15 · 125 阅读 · 0 评论 -
1.14 Memory Profiler Package - All of Memory
【代码】1.14 Memory Profiler Package - All of Memory。原创 2025-12-08 11:02:42 · 220 阅读 · 0 评论 -
1.22 Profiler提供的API
【代码】1.21 Profiler提供的API。原创 2025-11-08 16:45:59 · 288 阅读 · 0 评论 -
1.20 File Access
File Access(文件访问)主要用于监控游戏运行过程中对文件系统的访问情况, 显示游戏在运行时读取或写入的行为;包含:a.读取资源(如texture, 音频, 文本)的行为b.写入日志、存档文件的行为c.加载Addressables或AssetBundles的行为d.使用File.ReadAllText、WWW、UnityWebRequest等API的行为e.与StreamingAssets、PersistentDataPath、Resources等目录交互的行为。原创 2025-11-07 17:50:46 · 278 阅读 · 0 评论 -
1.21 Asset Loading
AssetLoading资源加载模块用于统计游戏在运行时加载资源所消耗的时间和调用信息。原创 2025-11-06 17:39:03 · 149 阅读 · 0 评论 -
1.18 UI和UI Details
【代码】1.18 UI和UI Details。原创 2025-11-02 16:17:17 · 197 阅读 · 0 评论 -
1.17 Physic
【代码】1.17 Physic。原创 2025-10-23 17:37:00 · 240 阅读 · 0 评论 -
1.16 Video
a.Total Video Sources: 场景中视频源的总数b.Playing Video Sources: 场景中正在播放的视频源数量c.Pre-buffered frames: 预缓冲帧的总数, 帧数太少可能会导致播放卡顿d.Total Video Memory: 应用程序中的视频所用的系统内存量a.Total Video Sources: 场景中视频源的总数b.Playing Video Sources: 场景中正在播放的视频源数量。原创 2025-10-06 16:01:30 · 221 阅读 · 0 评论 -
1.15 Audio
Unity场景中处于播放状态的Audio Source组件的数量音频引擎(FMOD)"实际受理"并消耗CPU去处理的声音数量, 用于评估真实的CPU性能开销, 这是音频性能瓶颈的直接指标(如果游戏卡顿, 并发现Audio Voices数量持续很高, 比如超过30- 40, 则需要优化)音频在该帧中的CPU使用率, 一般小于10%属于健康, 大于20%则需排查音频引擎在该帧中使用的内存量, 持续增长或过大可能是资源未释放或内存音频太多。原创 2025-09-14 13:45:00 · 183 阅读 · 0 评论 -
1.13 Memory Profiler Package - Unity Objects(unity对象页签)
Unity Objects用于快速定位unity对象内存占用的类型和具体实例a . 查找内存占用最大的资源 , 判断这些资源是否可以压缩或延迟加载b . 查找重复加载的资源c . 查看运行时创建但是没有释放的资源d . 查看脚本对象释放滞留内存常见的一些问题:a.纹理贴图内存过高: 检查下是否重复加载, 未加载, 是否开启read/writeb.相同资源是否多次加载: Name相同, 但是InstanceID不同的对象c.动态资源未释放: 脚本中没有及时释放材质, 纹理等。原创 2025-09-13 21:09:06 · 308 阅读 · 0 评论 -
1.12 Memory Profiler Package - Summary
【代码】1.12 Memory Profiler Package - Summary。原创 2025-09-07 17:45:47 · 275 阅读 · 0 评论 -
1.11 初始Memory Profiler Package
1) . Memory Profiler Package(内存分析器包) 是unity提供给我们的一个关于内存分析的独立工具 , 它获取的是当前时刻 , 全局的内存情况 2) . Memory Profiler Package通过捕获不同时间点的内存快照进行对比 , 来定位内存泄露 , 资源未释放 , 异常增长等问题比如 : 我们进行某些操作时 , 前后各生成两次快照 , 分析内存问题a . 打开一个ui面板前后b . 运行 10 分钟前后c . 切成场景前后当我们。原创 2025-08-31 18:46:08 · 175 阅读 · 0 评论 -
1.10 Memory
1).Memory(内存)模块它是unity中监视内存使用情况的关键工具, 它能帮助我们识别哪些资源在占有大量内存,是否存在内存泄露或垃圾回收频繁等问题2).游戏中如果出现以下问题, 可以重点观察memorya.游戏卡顿, 掉帧- 表现: 游戏突然变慢, 不定期小卡顿, 操作延迟等- 可能原因: 内存不足导致系统频繁进行垃圾回收(GC), 降低游戏帧率b.闪退, 崩溃- 表现: 玩着突然黑屏突出, 特定场景(如加载大地图等)崩溃- 可能原因: 设备分配不出更多内存, 系统强制杀掉进程。原创 2025-08-30 19:09:20 · 275 阅读 · 0 评论 -
1.9 虚拟内存管理机制
【代码】1.10 虚拟内存管理机制。原创 2025-09-05 16:05:13 · 175 阅读 · 0 评论 -
1.8 物理内存和虚拟内存
【代码】1.8 物理内存和虚拟内存。原创 2025-09-05 13:53:35 · 248 阅读 · 0 评论 -
1.7 Rendering模块
1).Rendering(渲染)模块用于显示渲染一帧时的数据量(比如: 批次数, 顶点数等)2).在游戏中如果出现以下问题, 可以重点观察这里的内容a.DrawCall过高导致CPU性能问题(卡顿, 掉帧)b.中低端手机上发热严重, 掉电快c.开启大量实时光照, 粒子, 动态对象后出现掉帧d.画面复杂卡顿, 简单不卡顿。原创 2025-08-30 18:05:43 · 271 阅读 · 0 评论 -
1.6 GPU Usage简介
1).GPU Usage用于分析GPU(图形处理器)在一帧中在哪些渲染阶段上花了多少时间a.Graphics Jobs是Unity用于加速渲染流程的多线程技术, 开启GPU Profiler会关闭它, 影响性能测试的真实性b.使用URP(渲染管线)和HDRP(高清渲染管线)时, GPU模块不会显示详细的GPU时间采样(比如: 各个pass, shader的耗时)所以数据不完整2).如果只关心CPU性能或使用SRP(URP/HDRP), 可以暂时关闭GPU Profiler;原创 2025-08-29 15:58:50 · 270 阅读 · 0 评论 -
1.5 图形程序接口
【代码】1.4 图形程序接口。原创 2025-08-28 17:21:41 · 222 阅读 · 0 评论 -
1. 4 CPU Usage
【代码】1. 4 CPU Usage。原创 2025-08-24 22:26:24 · 246 阅读 · 0 评论 -
1.3 CPU的开销
【代码】1.3 CPU的开销。原创 2025-08-23 20:51:17 · 188 阅读 · 0 评论 -
1.2 Profiler顶部标签
【代码】1.2 Profiler顶部标签。原创 2025-08-23 20:18:58 · 212 阅读 · 0 评论 -
1.1 Unity性能分析工具概述
学习唐老师的课程性能分析工具主要指Unity提供给我们的,自带的分析性能问题的工具,他们主要集中在Unity工具栏的 Window(窗口) 页签。原创 2025-08-17 20:11:27 · 190 阅读 · 0 评论
分享