IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity性能分析工具合集(Profile Analyzer,Memory Profiler,UPR,UWA) -> 正文阅读

[游戏开发]Unity性能分析工具合集(Profile Analyzer,Memory Profiler,UPR,UWA)

Profile Analyzer

该工具可以汇总多帧 Profiler 数据,由用户来挑选出那些问题较大的帧。如果你想了解项目更改后 Profiler 的相应改变,可使用 Compare 视图分别加载和比较两个数据集,即比较两次多帧分析数据扫描,从而完成测试与优化。Profile Analyzer 可在 Unity Package Manager 中下载。
Windows-> Package Manager
在这里插入图片描述
一、使用
打开profiler,定位到某一帧,在Profile Analyzer中Pull Data
单一视图:分析CPU数据并可视化帧、线程和标记的数量,包括这些数据的最小值、最大值、中位数、平均数和上下四分位数,并提供返回Profiler窗口的链接,以找到数据出现的帧。帧数,线程和标记的时间分布情况也可以通过直方图和箱形图的形式呈现,可视化随时间变化的行为。
在这里插入图片描述

比较视图:两个帧数据集对比,以二个不同的颜色显示。不同数据集的区别会可视化在有序表格中,我们也可以在直方图和箱形图看到分布情况的区别,二个数据集可以显示代码或数据变更,项目设置改动及Unity版本升级的前后变化情况。
在这里插入图片描述

Filter面板可以过滤信息,匹配部分名称、运行线程、特定栈等级来限制使用的标记。除了根据特定名称匹配来筛选,也可以选择根据名称排除某标记组,以去除与统计结果不相关或无法有效反映标记组视图的标记,也可以通过使用窗口顶部的帧控制来选择出一部分帧。
在这里插入图片描述

Top 10 markets on median frames消耗最高的十个函数
在这里插入图片描述

Marker Comparison for currently selectes range作用同profiler的hierachy面板
选中帧后可以查看对比信息
在这里插入图片描述

Export可以将Marker Comparison for currently selectes range的数据以csv文件形式导出
在这里插入图片描述

MemoryProfiler

安装
windows->package manager->advanced->show preview package->memory profiler
一、简介
Memory Profiler允许分析项目的内存使用情况,以查找泄漏和碎片。内存泄漏可能发生在分配内存时,但在不再需要内存后未进行处理。随着内存耗尽,程序性能会恶化,最终导致程序(甚至主机设备)崩溃。当内存分配在许多小块中,而不是更少的大型连续块时,它被称为内存碎片。这将导致分配块之间的未分配内存小范围变得不可用
Memory Profiler是审核项目的内存使用情况的好方法。 您不仅可以查看消耗最大内存的内容,还可以查看项目使用或滥用内存的方式。 内存泄漏和碎片是影响项目性能的两个最常见的问题,并且Memory Profiler使解决这些问题变得容易
二、使用
运行项目,打开MemoryProfiler,点击capture捕获当前的内存配置文件,然后open,查看文件
在这里插入图片描述

1.Tree Map
在这里插入图片描述

图中的每一个大的色块是一种内存类型,例如最下面一块项目里占用资源最多的是shader,点击shader之后,可以显示该类别的所有成员元素及其各自的内存占用量

2.Memory Map
在这里插入图片描述

以不同的颜色显示内存布局代表不同类型的内存

UPR

为了获得更加精准的分析数据,UPR通过Unity Profiler,直接收集运行在目标硬件上的测试包所产生的分析数据。同时,相比较于集成在Unity Editor中的Unity Profiler,UPR能过更直观的方式,提供了更多的比较维度和追踪角度,展示了更多的内容,方便测试和开发人员更快的定位性能瓶颈。
Unity资源监测,快速资源扫描,可用于Asset Bundle冗余检测;基于Project Auditor的检测规则,通过对代码进行静态扫描和解析,分析Unity脚本程序中特有的性能相关的问题隐患。
UPR Desktop集成了Memory Profiler,RenderDoc,还可以监控Lua VM的CPU和内存使用情况。
一、使用(PC端)
在官网下载UPR包,导入unity,项目包名要与unity player setting一致
在这里插入图片描述

网页会生成一个ProjectId
打开Unity,Tools->UPRTools输入ProjectId
在这里插入图片描述

打包项目,创建新测试
在这里插入图片描述

运行项目,UPR生成检测报告
二、测试报告(Unity官方测试项目)
在这里插入图片描述

报告给出了各个指标的检测结果,推荐值,以及优化建议
例如:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

比较有亮点的地方还是区间报告这一块,可以通过拖拉下面的时间轴,具体定位到某些位置,查看相应位置中的性能损耗。相当于就是局部数据的收集,这样我只要测试一次生成一份报告,还可以获得每个场景的总体评价。
在这里插入图片描述
在这里插入图片描述

还可以查看内存使用情况
在这里插入图片描述

这个界面跟Unity自带的Profiler差不多
在这里插入图片描述

根据优化建议优化后重新测试,各项指标都已达标:
在这里插入图片描述

UWA

UWA GOT全程Game Optimization Toolkit,既能在本地直接进行真机测试,也支持在Unity Editor中搭建本地服务器来接收和分析性能数据。
一、使用
将UWA_GOT中的unitypackage导入
在这里插入图片描述

在Editor中将UWA/Prefabs文件夹下的UWA_Android.prefab文件拖入到项目的场景中
在这里插入图片描述

当Game视图出现以下UI界面时则说明UWA插件已经集成到项目中
在这里插入图片描述

点击Tools->UWA->SDK Integration,点击Auto Config一键设置
在这里插入图片描述

点击build here生成APK文件,即可进行真机测试,打开app,界面右上角选择Local Mode,选择测试类型(Overview、Mono、Asset),点击编辑器菜单栏中的UWA->Local Server选项,点击WIFI开启本地服务器。
在测试手机上安装UWA文件夹下的UWATool.apk文件并打开,输入Local Server的IP地址,点击Try Connect,原点变绿则连接服务器成功。
在这里插入图片描述

点击Upload Data,即可查看该手机上的所有测试数据,点击submit传输数据,,可在Local server上选择想查看的性能报告。

二、功能
1.Performance Overview
主要包括逻辑代码的CPU开销以及硬件设备等具体信息
CPU耗时分析视图:
在这里插入图片描述

也可以查看具体的逻辑代码开销:
在这里插入图片描述

在Mode中选择Hardware,可以查看项目运行时的硬件设备运行信息,主要包括硬件设备的内存信息
在这里插入图片描述

FPS统计:
在这里插入图片描述

MonoHeap:Mono堆内存总量统计,包括使用的和未使用的:
在这里插入图片描述

2.Mono堆内存分析
Mode选择Total,查看每个函数的总体堆内存分配情况:
在这里插入图片描述

Mode选择Persistent,可以查看每个函数在Mono中的真实驻留情况,以柱状图形式显示
在这里插入图片描述

选择任意两个柱状图,可以比较两次堆内存统计的差异,在Diff Mode中选择ON开启该功能
在这里插入图片描述

3.Assets运行时资源
查看资源使用情况,也可以查看某一帧
在这里插入图片描述

资源泄露分析,比较任意两帧的资源变化情况
在这里插入图片描述

资源冗余分析,资源数据展示界面中Max Count值(某一资源在某一帧中的最大资源使用数量)大于1的资源存在冗余问题的风险较高
在这里插入图片描述

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-07-29 11:59:42  更:2021-07-29 12:00:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 18:32:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码