如何使用UWA做游戏性能优化

Unity游戏开发之接入UWA_GOT的iOS版SDK以后无法正常出包 最近有看到UWA_GOT工具新增了iOS版本的支持,于是下载了最新的工具包进行了接入测试。是按照文档直接将UWA_GOTv2.0.1_iOS.unitypackage导入进了Unity项目内,并且做了配置 阅读详情

UWA是现在常用的Unity手游性能分析工具,好处是比Unity自带的工具或Xcode更详细和直观。最近公司的项目也在使用,将使用经验在此做个分享。

先看下UWA的产品线:

  • GOT Local/Online
  • 线上测评
  • 线下深度优化

三者之间的定位参见下图:
在这里插入图片描述简单的说:

  • 如果想要快速定位问题、快速拿到分析结果,那就选择GOT。GOT分Local版和Online版,前者可以通过在本地搭建服务器查看报告,后者可以将测试数据上传到官网出详细报告,不过是按测试时间收费的。
  • 如果有时间,可以等一等拿到一份全面的分析报告,那就选择线上性能测评。注册会员每个月有两次的免费测评机会。缺点是他是人工测试,不像GOT那样可以自由选择测试内容和时间,而且还有24小时的等待时间。
  • 至于线下深度优化,属于有钱有闲团队的选择,在此不深入探讨。

下面以线上性能测评为例,看下UWA重点关注的是哪些方面,其实也从侧面提示我们做游戏优化要考虑的要点。

CPU优化

CPU优化的重点在以下四块:渲染模块、UI模块、加载模块和代码效率。

渲染模块

在这里插入图片描述
主要从两方面入手:一方面是降低draw call,可以通过静态批处理、动态批处理或GPU Instancing。需注意:在使用静态或动态批处理时,需要使用相同材质,这就要通过合并图集来实现。

另一方面是简化资源,避免过高的面片数和不合规的纹理资源,可以采用LOD或者Culling Distance等。

UWA推荐的性能指标:

  • draw call:< 250
  • 三角面片数:< 200,000
UI模块

在这里插入图片描述
常用的优化方案是动静分离,即将动态UI元素和静态UI元素分离到不同的Panel中,从而限制动态UI元素的mesh重建带来的性能开销。

UWA推荐的性能指标:

  • UI模块消耗的CPU均值:< 3ms
加载模块

在这里插入图片描述
主要是资源卸载、资源加载、实例化这三块的消耗。

代码效率

在这里插入图片描述代码效率的影响在一些逻辑密集型的模块中尤为明显,如核心战斗计算等。UWA列出了所有高CPU占用函数,方便做针对性的优化。

除了上述的四块重点以外,常见的优化点还包括:动画模块、粒子模块、物理模块、GC调用等。

内存优化

UWA推荐的性能指标:

  • 总内存峰值:< 200MB
  • 纹理资源内存峰值:< 70MB
  • 堆内存峰值:< 40MB

内存优化重点是以下两块:资源占用和托管堆内存占用。

资源占用

在这里插入图片描述主要的优化思路:

  • 使用平台对应纹理格式。如ios平台用PVRTC,安卓平台用ETC2,这些是硬件能直接支持的。少用其他格式的纹理,如RGB24和RGBA32。
  • 去除重复资源。有时候美术会不小心重复导入资源,或者老版本资源已经没有用到了,这时应该去掉。
  • 减小非必要纹理尺寸。如果512 * 512就能达到显示效果,就没有必要使用1024 * 1024。
  • 打包图集。OpenGL在加载纹理时,使用的内存会自动扩张到2的N次方。所以合并纹理可以减小内存。
  • 去除mesh中无用的tangent、normal和color数据。
托管堆内存占用

在这里插入图片描述常见引起堆内存占用过高的问题有以下几点,值得我们注意:

  • 高频率(如每帧)创建class/array/list等。
  • 日志打印。
  • 创建了太多的String,而不是使用StringBuilder。
  • getComponent()调用。会带来额外的cpu和内存开销,最好将结果缓存使用。

以上就是总结的使用UWA做性能优化的思路。UWA毕竟只是一个工具,更重要的是借此掌握解决问题的思路。

Unity性能优化分析篇 性能优化是游戏项目开发中一个重要环节。游戏帧率过低,手机发烫, 包体太大,低端机上跑不起来等, 这些都需要来做优化,不管过去,现在,未来,性能优化都是永恒的话题。而性能优化首先要掌握的是性能分析,通过分析才能发现问题所在。性能分析对于游戏开发是必备的,通过性能分析工具可以给我们提供游戏性能表现的详细信息。如果我们的游戏存在性能问题,如低帧率或者高内存占用,性能分析工具可以帮助我们发现问题的起因,并协助我们解决问题。 阅读详情

相关推荐

使用 UWA Gears 测试小游戏性能

结合小游戏现网性能评测标准,快速定位启动和运行阶段的性能问题

UWA—简单优化,优化简单! 1633

UWA发布 | Unity手游性能年度蓝皮书

着眼当下,把握未来

UWA—简单优化,优化简单! 2096

Mcgs 屏幕Modbus RTU通讯调试

昆仑通态屏幕作为Modbus Master 与 Modbus Slave通过RS485接口实现通信的调试记录

madao1234的博客 5570

Unity性能优化系列—加载与资源管理

我们曾在四年前对于Unity的主流模块的性能优化知识点逐一做过讲解,俗称“小白版”。随着这几年引擎本身、硬件设备、制作标准等等的升级,UWA也不断更新优化规则和方法并持续输出给广大开发者。作为"升级版"的性能优化手册,【Unity性能优化系列】将力图以浅显易懂的表达,让更多开发者受用。本期就将分享加载与资源管理相关的知识点。 经常会有一些团队询问:为什么我的游戏加载这么缓慢呢,能否做到像***游戏一样秒切场景呢?游戏发烫又是什么原因呢?为了防止大家辛苦做出来的游戏在真机上卡成翔或者秒变暖手宝,我们要充分利

UWA—简单优化,优化简单! 1954

CTF逆向-[GWCTF 2019]babyvm-WP-虚机模拟流程反向编码和z3约束求解器解方程工具的使用

CTF逆向-[GWCTF 2019]babyvm-WP-虚机模拟流程反向编码和z3约束求解器解方程工具的使用 来源:https://buuoj.cn/ 内容: 附件:https://pan.baidu.com/s/1FKkXN6JDI0QkGw-UE2crNA?pwd=grb0 提取码:grb0 答案:Y0u_hav3_r3v3rs3_1t! 总体思路 发现是虚机模拟 形成每个指令的逆向 找到加密值位置(有可能不止一个位置,该题就给了一个误导的) 找到命令执行的流程(也是不止一个) 逆向编写反向加密得到f

serfend's blog 977

告别密码!用VScode+SSH一键连接树莓派,再也不用每次输密码了

本文详细介绍了如何通过VScode和SSH密钥实现树莓派的免密连接,告别繁琐的密码输入。从开发环境准备、SSH密钥生成与配置,到VScode远程连接优化和常见问题排查,提供了一套完整的解决方案,帮助开发者提升工作效率。

weixin_28831341的博客 172

基于移动设备算力的UWA性能标准系统上线

在日常的游戏优化过程中,我们总是被研发团队问到这样的问题: “4GB内存的设备上,我们的PSS内存应该控制在多少以下?纹理内存、Mono内存、Shader内存应该在多少以下是正常的?”“XXX设备上跑多少三角形面片合适、Draw Call应该控制在多少以下较为合理”“我们在XXX设备上,Animators.Update耗时达到了6.8ms,这个算高还是算低?我们需不需要再优化,优化到多少合理?”“我们在XXX设备上温度达到了55度,这个温度算高吗?”… 是不是这些问题看起来似曾相识?这本质上涉及的是游戏

UWA—简单优化,优化简单! 540

STM32F103+W5500网络通信

STM32F103+W5500网络通信一、W5500模块(一)W5500以太网模块介绍(二)模块排针功能表二、 modbus协议(一)modbus协议原理(二)Modbus 通讯方式1.Modbus三种通讯方式2.在Modbus网络上传输3.以太网(modbus tcp/ip)三、参考资料 一、W5500模块 (一)W5500以太网模块介绍 D-W5500 EVB以太网模块是一款基于WIZnet W5500芯片的以太网模块,且性价比高的以太网模块。W5500是一款全硬件TCP/IP嵌入式以太网控制器,为

”一只特立独行的猪“的博客 1万+

再也不用焦虑特效造成的性能问题了

深圳雷霆使用UWA Pipeline实现专项特效检测案例分享

UWA—简单优化,优化简单! 646

实测iOS和安卓大不同!用NFC触发小程序跳转的完整避坑指南(含NFC Tools配置)

本文深入解析iOS与安卓在NFC触发小程序跳转时的核心差异,提供微信与支付宝小程序的NFC实现方案及优化技巧。涵盖跨平台兼容性测试方法论、性能优化策略及异常处理方案,帮助开发者避开常见陷阱,提升跳转成功率。特别针对NFC Tools配置和微信Universal Link使用进行详细指导。

asdfghjkl978564的博客 434

使用CubeMX生成的项目在Keil下添加DSP库并包含arm_math头文件后报错的解决办法

问题描述: 最近使用Cube生成工程后,在Keil中使用Manage Runtime Environment即绿色小饼干按钮添加CMSIS的DSP库后编译报错。很有意思的是,STM32论坛上有外国朋友报告的同样的错误,都是30个Errors,5个Warning。 问题分析: 参考国内论坛某帖子(具体想不起来了),认为因该是Cube复制了库后,Keil从原始Packs目录下引用DSP库导致和Cub...

qq_32256951的博客 7001

更新!!!Unity移动端游戏性能优化简谱

从UWA性能优化工具开始的游戏研发“工业化”实践。

UWA—简单优化,优化简单! 1976

2024年 Flutter 面试题大全(2024.6.28持续更新中)

2024年 Flutter 面试题大全(持续更新中)

Code Metaverse 6666

Unity整体性能优化篇 第(五)节:其他优化

1.UWA工具 我们可以使用第三方UWA性能优化工具去优化我们的项目,下面是UWA使用的教程文章: 参考地址:https://blog.youkuaiyun.com/uwa4d/article/details/73466142 2.使用Unity开发安卓游戏 应该如何进行性能优化 参考文章:http://gad.qq.com/article/detail/17252 3.编译优化 由于编译器实在是每次修改代码...

专注游戏研发 371

11、频率响应与伯德图详解

本文详细介绍了电子电路分析中的频率响应与伯德图,涵盖分贝的定义与计算、带宽与3dB点、放大器反馈机制、倍频程与十倍频程概念,并系统讲解了基于实数和复数零极点的伯德图构建方法。通过具体示例分析了传递函数的渐近近似、幅度与相位响应,并结合MATLAB工具展示了伯德图的绘制过程。文章旨在帮助读者深入理解电路在不同频率下的行为特性,为电路设计与优化提供理论支持。

white的博客 172

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

如何读懂UWA性能报告?—UGUI篇

抛砖引例 在此,我们以一个UI性能特别出众的游戏《星辰奇缘》为例,打开UWA性能报告中的UI页面,我们能看到这里的测试指标为CPU峰值、CPU均值、堆内存分配总值、堆内存分配均值,也能在下图中查看这些参考数值随着项目运行时的走势。对于 UGUI 来说,UWA报告中主要检测 Canvas.BuildBatch 和 Canvas.SendWillRender...

weixin_34008805的博客 270

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Unity移动端游戏性能优化简谱之 前言

熟读UWA简谱,优化心里有谱

UWA—简单优化,优化简单! 802

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

UWA学堂|开发流程模块

本文主要为大家推荐UWA学堂中开发流程的相关课程,涵盖了Programming、Artists、TA、QA和运营等五个子类。 在UWA学堂界面中的“分类“选择开发流程即可查看相关课程。 无论对于从业者还是正在读大学的技术萌新,学习的有效时间和个人时间都是有限的。高效学习者最在意的是时间的价值,一个需要体系化的知识地图就显得尤为重要。 零基础 Programming 《游戏开发中的优化思维》 文章主要介绍在开发中,一些具有共性的调优步骤,以及能够给游戏“追求更好”这种目标带

UWA—简单优化,优化简单! 2152

Unity优化百科(UWA 博客目录)

Part 1. 优化工具 Q:UWA提供哪些可以快速提升性能的工具? 这个要从UWA的定义说起,UWA由侑虎科技开发的游戏/VR应用性能优化平台,目前提供 1)性能检测与优化 2)资源检测与分析 3)UWA GOT 三大工具。下面我们将分别介绍。 一、性能检测与优化 通过真人真机对项目测试,提供针对性的性能报告和优化方案,既能从宏观上分析项目运行时的整体...

weixin_34115824的博客 494

Unity性能优化

打开Unity Profiler面板可以查看详细的性能消耗 优化途径: ·进行资源优化: 模型优化 贴图优化 贴图合并 减少冗余资源和重复资源 资源监测与分析https://www.uwa4d.com/#assetbundle ·渲染优化(GPU) 使用 LOD - 层级细节 Occlusion Culling - 遮挡剔除 Lightmapping - 光...

weixin_30501857的博客 114

Unity优化

Unity 优化(一) ------ 优化前了解以及方向 FPS:画面每秒传输帧数,,要避免动作不流畅的最低是30;值越大性能越好 CPU:计算每帧需要消耗的时间,值越低说明计算越快,值越小性能越好 Batches:将某些DrawCalls合并,数量为合并后DrawCall的数量。 Tris:三角面 Verts:顶点 SetPass call:Shader中Cpu每次运行Pass之前都会产生一个S...

爱上游戏开发 2860

Unity 优化之 逻辑代码的性能瓶颈与优化方法

首先感谢侑虎科技 UWA DAY 2018的精彩分享,笔者本篇中的优化方法主要是对UWA DAY其中一部分精彩分享的整理,使用的主要排查工具是UWA GOT 有不正确或者不准确的地方欢迎留言指正 下面列举一些容易产生堆内存的函数 Unity API: Debug.Log AssetBundle.LoadAsset Object.Instantiate/GameObejct...

su9257的博客 290

移动端游戏性能优化简谱之 常见游戏内存控制。

《Unity 移动端游戏性能优化简谱》从 Unity 移动端游戏优化的一些基础讨论出发,例举和分析了近几年基于 Unity 开发的移动端游戏项目中最为常见的部分性能问题,并展示了如何使用 UWA 的性能检测工具确定和解决这些问题。内容包括了性能优化的基本逻辑、UWA 性能检测工具和常见性能问题,希望能提供给 Unity 开发者更多高效的研发方法和实战经验。资源内存、Mono 堆内存等常见游戏内存控制,共 13 小节,包含了纹理资源、网格资源、动画资源、音频资源、材质资源等多个资源内存以及 Mono 堆内存等

博客 732

2025 UWA问答盘点:移动端游戏性能优化的高频问题与实战方案

移动端游戏开发中,性能优化已成为决定体验的关键环节。从帧率稳定性到内存占用,任何环节的失衡都可能导致发热、卡顿甚至闪退。其根本原理在于GPU带宽、渲染线程同步、内存分配与GC回收等底层机制的协同效率。掌握定位工具(如Profiler、GPU厂商计数器)和优化策略(如后处理降分辨率、阴影级联调校、ASTC纹理压缩、AssetBundle依赖梳理),能显著提升运行流畅度。在实际场景中,全屏后处理带宽消耗、阴影闪烁、纹理内存膨胀、GC瞬间掉帧等问题高频出现,而2025年UWA问答年度精选恰好集中呈现了这些典型难题

weixin_29014939的博客 149

专业的优化服务,就是为你争取时间!

时间对于游戏研发团队的重要程度毋庸置疑,它不仅体现在研发成本上,还隐藏了另一个更重要的因素:机会成本,这从最近如火如荼的吃鸡大战即可窥见一斑。而性能优化作为研发过程中的必经之路,也逃不开这样的命题,这也是为什么UWA要反复强调时间的重要性:如果我们把项目的性能优化到极致,使得项目早一天上线,覆盖更多的用户群,则能把时间价值最大化地转换为可观的财富。

UWA—简单优化,优化简单! 698

性能优化,进无止境---CPU篇

性能优化是项目开发中一个永恒的话题。用户的需求和项目的要求总在不停地增长,同屏人数、屏幕特效和场景复杂度永远在向着“榨干”硬件的趋势逼近。所以,无论硬件设备发展到何种程度、研发团队有多么丰富的经验积累,性能优化依旧是一个令人棘手却又难以规避的问题。 项目的性能优化主要围绕CPU、GPU和内存三大方面进行。今天,我们就这三方面来谈谈当前普遍存在的性能问题和相应的解决方案。此文为第一篇:

进击的Unity3d 1174
上一篇: 如何进行一场高质量的游戏技术面试(原则篇)
下一篇: 记一次服务端定时器问题的解决
长三月
博客等级 码龄9年 228粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值