功能上新|对比分析、Batches数量、函数释义Tips

news2024/11/26 4:38:25

本篇是继功能上新|内存篇、GPU篇之后,为大家展示更多关于提升浏览UWA GOT Online Overview报告体验的优化项,包括Overview报告的对比分析、Batches数量、函数释义Tips等。这些功能可以让你更快上手对报告的理解,亦或者更好地融入在研发团队的工作流中,形成更高效便捷的性能数据监控闭环。

快速获取过往两期功能介绍和优化建议,可前往:
功能上新|内存篇:PSS显存、内存占用、堆内存对象快照
功能上新|GPU篇:SoC GPU信息、GPU Counter性能指标

更好的对比分析

UWA完善了GOT Online Overview报告的对比分析功能,在页面右侧可快速进入“对比分析”页面。

选中报告/场景后,即可一键查看性能对比概览和对比数据表两个页签。

在性能对比概览下,开发者可以看到CPU耗时、GPU耗时、Jank均值、设备内存和硬件信息及其五个模块下各项重要指标的对比概览。

在对比数据表下,默认展示了报告的帧率、Jank均值、GPU耗时等重要指标。此外,还可以选择筛选自定义指标,按需增加各个模块的具体参数。

同时,在表格中,还可以查看这些指标变化趋势和推荐值。对于超出推荐值的数据,UWA也会根据这些数值的优先级和警示度高亮标注。

同时,报告也支持导出,用作留档或进一步分析。

通过对比分析表,开发者可以便捷且充分地在团队内部搭建起监控流程,例如每双周对项目的性能情况进行数据汇总,若变化参数在合理范围内则进行持续开发,若超出推荐值则快速复盘和整改。

新增Batches数量

在GOT Online Overview报告的渲染模块下,新增了Batches数量,即项目运行过程中Batch提交次数。对于URP项目来说,UWA一般更建议关注Batches数量,如果项目的Batches数量过高、甚至始终与DrawCall数量相近,则说明SRP Batcher合批效果不好。

对于这种情况,开发者需要结合Frame Debugger排查打断合批的因素,如是否存在Shader未支持SRP Batcher、Shader存在多Pass、穿插等导致SRP Batcher失效的原因。

除了Batches数量外,报告中还展示了Batch.DrawStatic、Batch.DrawDynamic、Batch.DrawInstanced、Shadows.draw数量。这几个分类是Batches总数的一部分,如果在项目没有使用对应的合批方式,就获取不到这几个函数。以Batch.DrawInstanced为例,Batch.DrawInstanced次数为0,说明在这些场景里没有使用GPU Instancing。

需要注意的是,在Vulkan下无法获取Batches数量。

UGUI DrawCall数量和粒子系统DrawCall数量的展示

在GOT Online Overview报告的渲染模块下,Canvas.RenderSubBatch和ParticleSystem.Draw修改为优先展示函数调用次数。两个函数的调用次数分别代表了UGUI DrawCall数量和粒子系统DrawCall数量,当这两个参数较高时,会引起半透明渲染耗时上升,需要开发者持续关注。

函数释义Tips,助你快速消化“堆栈天书”

在Overview报告的各个模块的函数堆栈下,新增了函数释义的Tips。结合丰富的优化经验,UWA对优化过程中的常见函数进行了标注。将鼠标移动到函数名右侧的“ ! ”上,即可查看函数的释义、耗时来源、优化方式等信息。

一般来说,优化过程中遇到的性能参数非常多,有了这些贴心的Tips,就可以快速归因并给出整改方法,让优化的效率更上一层。


希望这些新功能和优化项可以帮助大家更便捷地定位项目中的性能问题。如果有更多的需求和建议也欢迎大家向UWA提出。浏览Demo报告请点击:
项目 - UWA - 简单优化、优化简单


欢迎前往UWA官网下载UWA SDK:UWA | 致力于游戏VR和AR应用提供项目研发解决方案 | 简单优化、优化简单 | 侑虎科技

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/616167.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

.Net Core 6 WebApi 项目搭建(一、简单搭建)

前言 对于后端开发者最耻辱的是什么,是只会增删改查,只会CV,只会业务代码。没错,我就是被钉在耻辱柱上的一员,3年开发经验,不会搭建框架,只会写业务代码,丢人丢人啊,所以…

【XR】One More Thing:Vision Pro ,7年磨一剑,2023WWDC苹果发布Vision MR

One More Thing:Vision Pro ,7年磨一剑,2023WWDC苹果发布Vision MR 1. 苹果MR Vision Pro:1. 专利布局:苹果表示在开发过程中申请了5000多项专利。2. 专属感知计算芯片3. 显示屏系统方面4. 续航方面5. Vision MR 的新框…

MATLAB安装配置MinGW-w64 C++编译器

文章目录 前言一、Mingw安装1、安装教程2、验证 二、MATLAB安装配置MinGW总结 #pic_center 前言 只是为方便学习,不做其他用途 一、Mingw安装 在网上找到的安装一直报错:The file has been downloaded incorrectly 1、安装教程 建议参考博客Mingw快捷安…

C++内存序、屏障和原子操作

文章目录 一、原子类型二、原子操作函数三、内存序1&#xff09;happens-before和synchronizes-with语义2&#xff09;内存序模式 四、标准库函数五、栅栏&#xff08;Barrier&#xff09; 一、原子类型 标准原子类型的备选名和与其相关的 std::atomic<> 特化类&#xf…

探索低代码的新形态(D2C、ChatGPT)

前言 低代码平台的出现&#xff0c;是互联网快速发展的背景下&#xff0c;满足产品快速迭代的实际需求。现在国内外都已经拥有非常多优秀的开源项目&#xff08;如&#xff1a;lowcode-engine&#xff09;和成熟的商业产品&#xff08;如&#xff1a;Mendix 、PowerPlatform&a…

Orillusion次时代 WebGPU 引擎

Orillusion 次时代 WebGPU 引擎 官网: https://www.orillusion.com/ 教程: https://www.orillusion.com/guide/ Orillusion 引擎是一款完全支持 WebGPU 标准的轻量级渲染引擎。基于最新的 Web 图形API标准&#xff0c;我们做了大量的探索和尝试&#xff0c;实现了很多曾经在 We…

python接口自动化(三)--如何设计接口测试用例(详解)

在开始接口测试之前&#xff0c;我们来想一下&#xff0c;如何进行接口测试的准备工作。或者说&#xff0c;接口测试的流程是什么&#xff1f;有些人就很好奇&#xff0c;接口测试要流程干嘛&#xff1f;不就是拿着接口文档直接利用接口 测试工具测试嘛。其实&#xff0c;如果…

【正点原子STM32连载】 第二十八章 低功耗实验摘自【正点原子】STM32F103 战舰开发指南V1.2

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第二十…

计算机中数据的表示:定点数、浮点数

文章目录 1 概述2 定点数2.1 表示方法2.2 取值范围2.3 运算方法 3 浮点数3.1 表示方法3.2 运算方法 4 扩展4.1 等比数列前 n 项和公式 1 概述 #mermaid-svg-EXDrkn8G91FsDdps {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#merm…

给 a 标签设置 display:inline-block 之后 a 整体下沉

今天给一个a设置宽高&#xff0c;前提是添加了display:inline-block&#xff1b;然后发下a没有与父元素div顶部对齐&#xff0c;反而下沉了。试了好多办法都没成功&#xff0c;然后在网上找的教程。 原因 1、问题就是出在了display:inline-block;语句上&#xff0c;行内块元…

使用Python进行接口性能测试:从入门到高级

前言&#xff1a; 在今天的网络世界中&#xff0c;接口性能测试越来越重要。良好的接口性能可以确保我们的应用程序可以在各种网络条件下&#xff0c;保持流畅、稳定和高效。Python&#xff0c;作为一种广泛使用的编程语言&#xff0c;为进行接口性能测试提供了强大而灵活的工…

Redis:数据类型

一、Redis字符串(String) 1、String类型 String字符串&#xff1a;string类型是redis最基本、最简单的数据类型&#xff0c;一个key对应一个value。 String类型的二进制是安全的&#xff0c;可以包含任何数据&#xff0c;但是每一个value最大时512M 2、String命令 设置和获…

《人月神话》译文修订明细(6)-读者可以对照修改

《人月神话》译文修订明细&#xff08;1&#xff09;-读者可以对照修改 《人月神话》译文修订明细&#xff08;2&#xff09;-读者可以对照修改 《人月神话》译文修订明细&#xff08;3&#xff09;-读者可以对照修改 《人月神话》译文修订明细&#xff08;4&#xff09;-读…

前端面试题整理14

目录 1.什么是同步&#xff1f;什么是异步&#xff1f; 2.localStorage、sessionStorage和cookie的区别&#xff1f; 3.Vue中key的作用是什么&#xff1f; 4.支付流程是什么&#xff1f; 5.Vuex的模块化是如何做的&#xff1f; 6.Vite和webpack的不同&#xff1f;Vite的优…

BS LIS系统仪器数据采集方法

BS LIS系统仪器数据采集方法 BS LIS系统对检验仪器的数据采集主要通过串行口通讯、USB端口通讯、TCP/IP通讯、定时监控数据库和手工录入等几种方法。串行口通讯最为普遍&#xff0c;采用RS-232C标准&#xff0c;一般的仪器都支持此标准。定时监控数据库对仪器管理机上已有的检…

【Vue】Element Plus和Element UI中插槽使用

文章目录 前言一、两者的区别二、组件库三、具体讲解总结 前言 今天和大家讲一下Element Plus和Element UI这两个组件库中表格的插槽使用方法&#xff0c;一般情况下vue2使用Element UI这个组件库&#xff0c;表格组件的插槽的话一般都是使用v-slot&#xff0c;而vue3使用Elem…

如何进行有效的移动应用测试?10个步骤带你一战成神

移动应用的市场日益壮大&#xff0c;而随着这个市场的发展&#xff0c;如何有效地测试移动应用也成为了一个重要的问题。本文将为你提供一些关于如何进行有效的移动应用测试的建议&#xff0c;并提供一些实际测试例子。 1. 理解你的用户和使用场景 在进行移动应用测试之前&…

rror updating database. Cause: java.sql.SQLSyntaxErrorException解决方案

错误描述&#xff1a; ### Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near CONDITION 1 这里是因为字段名…

Linux多线程认识

目录 &#x1f427;一、什么是线程 1.1虚拟地址如何转换成物理地址 1.2多线程 1.3Linux进程vs线程 1.4从Linux内核和CPU的角度看线程 &#x1f427;二、Linux线程控制 2.1POSIX线程库 2.2线程异常 2.3线程终止 ①exit不可以用来终止线程 ②pthread_exit() ③pthread…

Revit干货|自动捕捉遇到困难?这份秘诀请收好!

在BIM行业里&#xff0c;Revit往往影响着我们的建模效率&#xff0c;尽管软件提供了许多功能&#xff0c;但在建模过程中还是会因繁琐的操作而浪费很多时间。 因此&#xff0c;在使用Revit建模时&#xff0c;我们需要掌握一些小技巧来提升效率&#xff0c;如快捷键的使用和工具…