一 Stats重要参数详解
1.main thread 主线程 业务逻辑都在这里,我们调用Unity API都在这里;例如设置transform位置,main thread里面处理
2.render thread,渲染线程,负责渲染图像、执行渲染循环、处理GPU命令、帧同步。
3. 这个则表示当前负载最多可以绘制多少次(当前帧数)
4.Batches :批次,绘制场景,我们分几个批次提交给我们的GPU来绘制,100个物体要绘制,那么分几次提交给GPU。
5.Saved by batching:所有场景中,有多少物体是被合批渲染的。
6.Tris:三角形数目(面数)
7.Vert:顶点数
8.SetPass calls:表示在渲染过程中调用了多少次 SetPass
方法。这个统计项告诉你在一帧中有多少次渲染过程中切换了着色器的使用。所以要尽可能的让同一个shader的物体在一起渲染
9.Shadow casters:阴影开销
10.Visible skinned meshes playing :一些带有蒙皮动画的网格(通常是角色模型)当前正在被渲染并播放动画
11.Animation :有多少个动画实例,每一帧计算模型的顶点所在的位置,再回动画,采样
二、Profiler
-
启动 Profiler: 在 Unity 编辑器中,点击顶部工具栏上的 "Window" -> "Analysis" -> "Profiler" 打开 Profiler 窗口。在游戏运行时,点击 "Connect to Player" 按钮,可以在运行中的游戏中收集性能数据。
-
Identify Bottlenecks: 使用 Profiler 分析工具来识别应用程序中的性能瓶颈。查看 CPU、内存、GPU 等方面的统计信息,找到消耗性能的函数、渲染操作或内存使用。
-
CPU Profiling: 在 Profiler 的 CPU 部分,查看耗时最长的函数。优化这些函数可能对整体性能产生显著影响。关注高占用的函数,查看是否有不必要的计算或者是否可以优化算法。
-
Memory Profiling: 使用 Profiler 的内存工具来检查内存使用情况。查找内存泄漏、高内存占用的对象,以及检查是否有不必要的资源加载或创建。
-
GPU Profiling: 如果你的应用中有大量图形渲染,查看 GPU Profiler 的数据。优化着色器、减少 draw call 或者使用 GPU Instancing 等方式来降低 GPU 的负载。
-
减少 Draw Calls: 减少渲染时的 Draw Calls 数量,使用批处理技术(如合并网格、合并材质、使用 GPU Instancing 等)来优化渲染性能。
-
异步加载资源: 使用异步加载资源的方法,避免在主线程上阻塞加载操作,从而提高应用的响应性。
-
优化物理计算: 如果你的应用使用了物理引擎,注意物理计算可能成为性能瓶颈。考虑使用更简单的碰撞体、减少刚体数量,或者使用更适合场景的物理设置。
-
使用合适的 LOD: 对于大型场景,使用 Level of Detail(LOD)技术来控制远处对象的渲染质量,以减轻 GPU 负载。
-
使用 Profiler 的优化建议: Profiler 会提供一些优化建议,例如函数调用的百分比、内存占用等信息,注意这些建议并尝试实施它们