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

相关文章

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

Deepseek使用指南与提问优化策略方式

《Deepseek使用指南与提问优化策略方式》本文介绍了DeepSeek语义搜索引擎的核心功能、集成方法及优化提问策略,通过自然语言处理和机器学习提供精准搜索结果,适用于智能客服、知识库检索等领域... 目录序言1. DeepSeek 概述2. DeepSeek 的集成与使用2.1 DeepSeek API

MySql死锁怎么排查的方法实现

《MySql死锁怎么排查的方法实现》本文主要介绍了MySql死锁怎么排查的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录前言一、死锁排查方法1. 查看死锁日志方法 1:启用死锁日志输出方法 2:检查 mysql 错误

Tomcat高效部署与性能优化方式

《Tomcat高效部署与性能优化方式》本文介绍了如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应,高效部署包括环境准备、安装Tomcat、配置Tomcat、部署应用和启动T... 目录Tomcat高效部署与性能优化一、引言二、Tomcat高效部署三、Tomcat性能优化总结Tom

Rsnapshot怎么用? 基于Rsync的强大Linux备份工具使用指南

《Rsnapshot怎么用?基于Rsync的强大Linux备份工具使用指南》Rsnapshot不仅可以备份本地文件,还能通过SSH备份远程文件,接下来详细介绍如何安装、配置和使用Rsnaps... Rsnapshot 是一款开源的文件系统快照工具。它结合了 Rsync 和 SSH 的能力,可以帮助你在 li

解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)

《解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)》该文章介绍了使用Redis的阻塞队列和Stream流的消息队列来优化秒杀系统的方案,通过将秒杀流程拆分为两条流水线,使用Redi... 目录Redis秒杀优化方案(阻塞队列+Stream流的消息队列)什么是消息队列?消费者组的工作方式每

电脑密码怎么设置? 一文读懂电脑密码的详细指南

《电脑密码怎么设置?一文读懂电脑密码的详细指南》为了保护个人隐私和数据安全,设置电脑密码显得尤为重要,那么,如何在电脑上设置密码呢?详细请看下文介绍... 设置电脑密码是保护个人隐私、数据安全以及系统安全的重要措施,下面以Windows 11系统为例,跟大家分享一下设置电脑密码的具体办php法。Windo

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

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

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

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

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