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

相关文章

[职场] 护理专业简历怎么写 #经验分享#微信

护理专业简历怎么写   很多想成为一名护理方面的从业者,但是又不知道应该怎么制作一份简历,现在这里分享了一份护理方面的简历模板供大家参考。   蓝山山   年龄:24   号码:12345678910   地址:上海市 邮箱:jianli@jianli.com   教育背景   时间:2011-09到2015-06   学校:蓝山大学   专业:护理学   学历:本科

uniapp接入微信小程序原生代码配置方案(优化版)

uniapp项目需要把微信小程序原生语法的功能代码嵌套过来,无需把原生代码转换为uniapp,可以配置拷贝的方式集成过来 1、拷贝代码包到src目录 2、vue.config.js中配置原生代码包直接拷贝到编译目录中 3、pages.json中配置分包目录,原生入口组件的路径 4、manifest.json中配置分包,使用原生组件 5、需要把原生代码包里的页面修改成组件的方

Java面试八股之怎么通过Java程序判断JVM是32位还是64位

怎么通过Java程序判断JVM是32位还是64位 可以通过Java程序内部检查系统属性来判断当前运行的JVM是32位还是64位。以下是一个简单的方法: public class JvmBitCheck {public static void main(String[] args) {String arch = System.getProperty("os.arch");String dataM

电脑不小心删除的文件怎么恢复?4个必备恢复方法!

“刚刚在对电脑里的某些垃圾文件进行清理时,我一不小心误删了比较重要的数据。这些误删的数据还有机会恢复吗?希望大家帮帮我,非常感谢!” 在这个数字化飞速发展的时代,电脑早已成为我们日常生活和工作中不可或缺的一部分。然而,就像生活中的小插曲一样,有时我们可能会在不经意间犯下一些小错误,比如不小心删除了重要的文件。 当那份文件消失在眼前,仿佛被时间吞噬,我们不禁会心生焦虑。但别担心,就像每个问题

ABAP怎么把传入的参数刷新到内表里面呢?

1.在执行相关的功能操作之前,优先执行这一段代码,把输入的数据更新入内表里面 DATA: lo_guid TYPE REF TO cl_gui_alv_grid.CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'IMPORTINGe_grid = lo_guid.CALL METHOD lo_guid->check_changed_data.CALL M

电子盖章怎么做_电子盖章软件

使用e-章宝(易友EU3000智能盖章软件)进行电子盖章的步骤如下: 一、准备阶段 软件获取: 访问e-章宝(易友EU3000智能盖章软件)的官方网站或相关渠道,下载并安装软件。账户注册与登录: 首次使用需注册账户,并根据指引完成注册流程。注册完成后,使用用户名和密码登录软件。 二、电子盖章操作 文档导入: 在e-章宝软件中,点击“添加”按钮,导入待盖章的PDF文件。支持批量导入多个文件,

说一说三大运营商的流量类型,看完就知道该怎么选运营商了!

说一说三大运营商的流量类型,看完就知道该怎么选运营商了?目前三大运营商的流量类型大致分为通用流量和定向流量,比如: 中国电信:通用流量+定向流量 电信推出的套餐通常由通用流量+定向流量所组成,通用流量比较多,一般都在100G以上,而且电信套餐长期套餐较多,大多无合约期,自主激活的卡也是最多的,适合没有通话需求的朋友办理。 中国移动:通用流量+定向流量 移动推出的套餐通常由通用流量+定向

服务器雪崩的应对策略之----SQL优化

SQL语句的优化是数据库性能优化的重要方面,特别是在处理大规模数据或高频访问时。作为一个C++程序员,理解SQL优化不仅有助于编写高效的数据库操作代码,还能增强对系统性能瓶颈的整体把握。以下是详细的SQL语句优化技巧和策略: SQL优化 1. 选择合适的数据类型2. 使用索引3. 优化查询4. 范式化和反范式化5. 查询重写6. 使用缓存7. 优化数据库设计8. 分析和监控9. 调整配置1、

Java中如何优化数据库查询性能?

Java中如何优化数据库查询性能? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨在Java中如何优化数据库查询性能,这是提升应用程序响应速度和用户体验的关键技术。 优化数据库查询性能的重要性 在现代应用开发中,数据库查询是最常见的操作之一。随着数据量的增加和业务复杂度的提升,数据库查询的性能优化显得尤为重

js小题:通过字符串执行同名变量怎么做

在JavaScript中,你不能直接使用一个字符串来直接引用一个变量,因为JavaScript是一种静态类型语言(尽管它的类型在运行时可以变化),变量的名字在编译时就被确定了。但是,有几种方法可以实现类似的功能: 使用对象(或Map)来存储变量: 你可以使用一个对象来存储你的变量,然后使用字符串作为键来访问这些变量。 let myVars = { 'var1': 'Hello', 'var