Unity 性能优化之Profiler窗口(二)怎么看懂这个分析器

2024-05-05 02:20

本文主要是介绍Unity 性能优化之Profiler窗口(二)怎么看懂这个分析器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

提示:仅供参考,有误之处,麻烦大佬指出,不胜感激!

文章目录

  • 前言
  • 一、Profiler打开方式
  • 二、Profile简介
    • 添加没有的模块
      • 1.点击Profiler Modules(分析器模块)
      • 2.勾选GPU即可
    • 自定义模块
      • 1.点击Profiler Modules(分析器模块)
  • 三、怎么看懂这个分析器
      • 举个栗子 查看CPU的使用情况,如下图:
      • 再举个栗子 Rendering 的使用情况 如图:
  • 四、发布到手机端后怎么查看
  • 五、代码实现
  • 总结


前言

Unity3D Profiler是一款强大的性能剖析工具,可以帮助开发者分析游戏中的性能瓶颈,以便进行优化。它可以监测游戏运行时的各种指标,如CPU、内存、GPU、网络等,同时还提供了多种图表和面板,方便开发者查看和分析数据。
在这里插入图片描述

不懂得地方,查看官方文档,点击帮助,如下图:
在这里插入图片描述
在这里插入图片描述

一、Profiler打开方式

在Unity3D中打开Profiler工具的方法很简单,只需要按下菜单栏的Window -> Analysis -> Profiler,就可以打开Profiler窗口。

二、Profile简介

Profile窗口默认展示了:CPU Usage(CPU使用情况)、GPU Usage(GPU使用情况)、Rendering(渲染)、Memory(内存)、Audio(音频)、Video(视频)、Physics(物理)、Physics(2D)(物理2D)、Network Messages(网络消息)、Network Operations、UI、UI Details、Global Illumination(全局光照)等。

添加没有的模块

比如想查看GPU的使用情况,需要手动添加。
添加方式:

1.点击Profiler Modules(分析器模块)

在这里插入图片描述

2.勾选GPU即可

在这里插入图片描述
在这里插入图片描述

自定义模块

1.点击Profiler Modules(分析器模块)

再点击 设置–>Add -->选择需要添加的模块,并修改自定义名称,流程如下图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、怎么看懂这个分析器

Profiler窗口中的图表和面板可以帮助我们分析游戏中的性能问题。例如,CPU Usage图表可以显示游戏中每个函数的CPU使用情况,帮助我们找到CPU占用较高的函数;Memory Usage图表可以显示游戏中各个对象的内存使用情况,帮助我们找到内存泄漏的对象;GPU Usage图表可以显示游戏中的GPU使用情况,帮助我们找到GPU瓶颈等等。

首先点击运行

举个栗子 查看CPU的使用情况,如下图:

在这里插入图片描述
为了方便举例,关闭了除开脚本和动画的其他属性。
一般情况,我们会选择峰值最高点来查看性能的使用情况。
如图所示,所选的那一帧 使用了2.96ms(毫秒)处理了脚本,0.00ms处理了动画(因为空场景没有动画)

再举个栗子 Rendering 的使用情况 如图:

在这里插入图片描述
可以很清楚的看到,当前帧处理的绘制调用(Draw Call)批次的总数:288,以及其他属性使用情况。也就是当前这一帧处理的绘制调用多少次数,来判断是否合理。是否需要优化Draw Call次数。
最下面的面板也清晰的显示了所有属性的使用情况。

四、发布到手机端后怎么查看

1.首先必须勾选 如下图:
在这里插入图片描述
2.手机数据线连接电脑
3.这个位置会出现你手机设备的选项,选择既可
在这里插入图片描述
最后运行分析的数据 就是手机端的数据了

五、代码实现

Unity3D Profiler不仅可以通过GUI界面使用,还可以通过代码实现。以下是一个简单的示例:

using UnityEngine;
using UnityEngine.Profiling;public class MyProfiler : MonoBehaviour
{void Start(){//开始剖析Profiler.BeginSample("MyProfiler");}void Update(){//记录函数执行时间Profiler.BeginSample("Update");//do somethingProfiler.EndSample();}void LateUpdate(){//记录函数执行时间Profiler.BeginSample("LateUpdate");//do somethingProfiler.EndSample();}void OnGUI(){//记录函数执行时间Profiler.BeginSample("OnGUI");//do somethingProfiler.EndSample();}void OnDestroy(){//结束剖析Profiler.EndSample();}
}

总结

好记性不如烂笔头

这篇关于Unity 性能优化之Profiler窗口(二)怎么看懂这个分析器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/960616

相关文章

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

怎么关闭Ubuntu无人值守升级? Ubuntu禁止自动更新的技巧

《怎么关闭Ubuntu无人值守升级?Ubuntu禁止自动更新的技巧》UbuntuLinux系统禁止自动更新的时候,提示“无人值守升级在关机期间,请不要关闭计算机进程”,该怎么解决这个问题?详细请看... 本教程教你如何处理无人值守的升级,即 Ubuntu linux 的自动系统更新。来源:https://

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

LinuxMint怎么安装? Linux Mint22下载安装图文教程

《LinuxMint怎么安装?LinuxMint22下载安装图文教程》LinuxMint22发布以后,有很多新功能,很多朋友想要下载并安装,该怎么操作呢?下面我们就来看看详细安装指南... linux Mint 是一款基于 Ubuntu 的流行发行版,凭借其现代、精致、易于使用的特性,深受小伙伴们所喜爱。对

macOS怎么轻松更换App图标? Mac电脑图标更换指南

《macOS怎么轻松更换App图标?Mac电脑图标更换指南》想要给你的Mac电脑按照自己的喜好来更换App图标?其实非常简单,只需要两步就能搞定,下面我来详细讲解一下... 虽然 MACOS 的个性化定制选项已经「缩水」,不如早期版本那么丰富,www.chinasem.cn但我们仍然可以按照自己的喜好来更换

MySQL不使用子查询的原因及优化案例

《MySQL不使用子查询的原因及优化案例》对于mysql,不推荐使用子查询,效率太差,执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,本文给大家... 目录不推荐使用子查询和JOIN的原因解决方案优化案例案例1:查询所有有库存的商品信息案例2:使用EX

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五