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

news2024/11/16 18:40:03

最新2022年度Unity手游蓝皮书出炉!此次发布分析了2022年1月至2023年3月期间,游戏行业使用Unity引擎进行手游开发过程中及游戏上线后的性能表现,从测试机型分布、引擎各模块开销、内存占用等方面进行汇总分析,反映了Unity手游行业的现状。

这是侑虎科技原创文章,欢迎转发分享,未经官方授权请勿转载。如果您有任何独到的见解或者发现也欢迎联系我们,一起探讨。


报告目录:
1)Unity手游测试机型分布
2)Unity手游CPU模块性能开销分析
3)Unity手游内存模块性能开销分析

本次发布我们针对不同档次的机型进行分档,分档的依据为UWA根据设备的算力。以下是每种档位的典型机型:
顶端机:小米11、华为Mate40、OPPO FindX2
高端机:小米8、华为P30、OPPO Find X
中端机:OPPO R17、红米Note 8、华为P20
中低端机:OPPO R11、荣耀8X、 小米5X

◆◆◆

Unity手游测试机型分布

在本周期的游戏研发团队的测试中,我们统计了项目组在日常研发过程中使用的测试手机品牌和具体型号的占比,反映出游戏研发团队用于性能测试的移动设备的选择偏好。

各品牌的使用占比

游戏研发团队用于性能测试的机型主流品牌依次是华为(21%)、小米(18%)、红米(13%)、Vivo (11%)、三星(10%)和OPPO (10%);由于游戏出海的需求,三星手机的占比依然较高,且在出海的地区中三星的占比远高于小米和Vivo。


Top 20 测试设备(按项目占比计算)

小结:

  • 小米品牌以绝对性优势在测试机型中拔得头筹,Top 3机型分别为小米8、小米11和小米10;
  • 华为品牌的Top 3机型分别是华为P30、华为Mate 30 Pro和华为Mate 20;
  • Top 20机型中没有低端机型。

Top 20 测试设备使用趋势(按项目占比计算)

以小米8、小米10和小米11作为测试机的数量明显提升;
上一年度的低端机代表红米 4X已退出Top 20排名。


FPS均值总体情况

不同档次设备的FPS均值表现

从已有的测试数据看,高达40%的项目帧率在20-30帧之间,29%的项目在45-60帧之间。说明大部分的项目还是趋于30帧的目标做优化,但同时也说明目前已经有较多项目开始以60帧为目标进行游戏开发,高端设备(非顶端)上已经有近37%的项目以60帧作为目标。

在中低端设备上:75%的项目未到达30帧,34%的项目未达到20帧;
在中端设备上:58%的项目未达到30帧;
在高端设备上:44%的项目未达到30帧;
在顶级设备上:38%的项目未达到30帧,5%的项目达到60帧。


不同档次设备的FPS均值走势

顶级设备的帧率(均值)在37帧左右;
高端设备的帧率(均值)在32帧左右;
中端设备的帧率(均值)在29帧左右;
中低端设备的帧率(均值)在24帧左右。


Jank均值总体情况

不同档次设备的Jank值走势

卡顿均值在2022 Q3的表现下滑,后续卡顿值维持在7次/分钟,建议研发团队多使用GOT Online - Overview模式测试,并通过卡顿分析功能来进行检测和优化。


下面我们来具体分析Unity引擎的主流模块的开销情况。

为了能够更好地反映出各个性能参数的整体使用情况,我们统计了每种性能参数的主体使用范围,其范围区间是[5%~95%],以下数据中P5代表5%,P50代表均值,P95代表95%。

◆◆◆

Unity手游CPU模块性能开销分析

一、渲染模块

URP使用占比走势

在统计的项目中,URP的数量在持续上升,到Q4结束基本上已经超过60%,未来趋势也会越来越明显。建议研发团队在后续的新开游戏项目中,尽可能学习并使用URP功能。


DrawCall数量的主体范围均值

半透明渲染DrawCall主体范围均值

不透明渲染DrawCall主体范围均值

DrawCall Batches数量的主体范围均值

从上述的数据中可以看出,URP项目在通过合理的Batch之后,基本上都控制在了合理范围内,说明SRP Batch的合批效果非常突出,这也是UWA推荐研发团队要深入学习URP的原因。


Triangle数量的主体范围均值

同屏渲染面片数在不同档次的设备上画质分级效果已经并不突出,建议研发团队进一步加大场景、角色建模的复杂度,将模型的细节更加突出。


二、逻辑代码

GC调用频率(帧/次)

仅有27%的项目将GC调用频率控制在1000帧/次以上;54%左右的项目小于600帧/次,说明GC问题依然值得关注。

不同档次设备的GC调用频率

对于GC的优化,建议研发团队一方面继续优化自身逻辑代码的堆内存分配,一方面推荐大家使用Unity引擎的Incremental GC功能,来降低每帧GC的CPU耗时。


三、UI模块

目前我们主要统计了NGUI、UGUI和FGUI的占比情况。UGUI的使用占比不仅强势还在稳步提升,最高时可达85%;依然有7%左右的用户在使用NGUI,FGUI的使用比例在8%左右。

UI 类型占比

UI 类型占比走势


同时,我们以统计范围内最为主流的UGUI来进一步分析。

UGUI耗时均值分布

Canvas.SendWillRenderCanvases CPU耗时均值分布

UI模块的性能开销依然很高,但相较于去年,确实有进一步提升。这主要是在这一年多以来,各大研发团队对于UGUI的理解和掌握都在不断深入。当然,UGUI的使用也会有明显的性能问题,主要有以下四方面:

  1. DrawCall;
  2. 重建;
  3. Overdraw;
  4. 主线程阻塞。

针对以上问题,大家可以通过UWA学堂中UI相关的技术文章和视频进行学习和了解,相信对帮助大家快速提升UI方面的技术理解大有裨益。


四、动画模块

Animators.Update耗时主体范围均值

不同档次设备Animators.Update耗时均值走势

同一档设备的动画性能的趋势表现都较为平稳,说明大家对于动画模块的使用较为合理的。设备动画模块的性能耗时在2022年Q2均有所上涨。
同时,AnimationClipPlayable功能也非常值得研发团队后续研究和关注,它对于动画系统性能方面的提升有很大的潜力可以挖掘。


五、物理模块

Physics.Processing耗时均值的主体范围

物理模块耗时走势

物理模块的整体耗时相对比较平稳,这得益于越来越多的研发团队对于物理引擎开启的必要性做了更深入的了解。
同时,随着大家对于场景和角色物理模拟的逼真度要求越来越高,布料、布娃娃系统相关的插件开始逐步被广泛使用。特别是今年我们关注到不少团队开始使用Magica Cloth并取得了不错的性能效果,因此建议研发团队对其进行研究关注。


六、粒子模块

ParticleSystem.Update耗时的主体范围均值

粒子系统耗时均值走势

不同档次设备粒子系统耗时均值走势

提示研发团队注意两方面:
1)建议针对粒子系统根据不同设备的性能进行不同程度的调整,从而进一步降低粒子系统的CPU耗时和内存占用;
2)针对技能特效建议进行定期自动化地检测,可以参考深圳雷霆的特效自动化检测方案。

◆◆◆

Unity手游内存分布

一、总体内存

PSS内存占用峰值总体情况

不同内存设备的PSS内存占用峰值

PSS内存占用峰值走势

不同内存设备PSS内存占用峰值走势

4G内存以下设备的内存占用(中位值)在800MB-1.0GB之间,4G内存以上设备的内存占用在950MB-1.2GB(中位值)之间,且无论是低端、中端还是高端,整体都呈上升趋势。


二、总体堆内存

Mono内存占用峰值总体情况

不同内存设备的Mono内存占用峰值

Mono内存占用峰值走势

不同内存设备的Mono内存占用峰值走势

总体堆内存一直是项目的内存瓶颈,虽然在过去一年有所起伏,整体堆内存都高达90MB以上,且超过1/3的项目高达120MB。这主要是游戏的重度化所致,但另一方面也是研发团队对于Mono堆内存分配疏于管理所致,例如配置文件的序列化库使用不当。
Mono内存不太受机型的分档而有分级,且趋势较为平稳。
只有46%的项目做到了Mono峰值小于80MB,说明该问题不容小觑,且在低端设备上瓶颈较大。

项目的内存占用很大一部分来自于资源的使用,下面我们将对项目中主流资源的使用情况进行分析。


三、纹理资源内存

纹理内存占用峰值总体情况

不同内存设备的纹理内存占用峰值

纹理内存占用峰值走势

不同内存设备的纹理内存占用峰值走势

虽然硬件设备和画质要求在不断提升,但大家在高内存设备上的画质分级的设计上还不够明显,效果差异尚未拉开。


ASTC/ETC格式纹理覆盖率走势

ASTC/ETC格式纹理运行时数量占比走势

使用ASTC格式的项目越来越多,且自身资源的数量在项目中的占比也在快速升高。
ASTC已经成为目前国内市场的主流格式;如果考虑出海,则需要考虑ETC2格式。


四、网格资源内存

网格内存占用峰值总体情况

不同内存设备的网格内存占用峰值

网格内存占用峰值走势

不同内存设备的网格内存占用峰值走势

网格峰值内存的中位数使用内存均在25MB以下,该值偏低,由于设备内存在不断增加,研发团队可以考虑进一步加大场景、角色建模的复杂度,将模型的细节更加突出。


五、动画资源内存

动画片段内存占用峰值总体情况

不同内存设备的动画片段内存占用峰值

动画片段内存占用峰值走势

不同内存设备的动画片段内存占用峰值走势

动画模块的内存使用趋势在2023年Q1有明显的上升,峰值内存的均值长期维持在20MB之内。


六、Shader资源内存

Shader内存占用峰值总体情况

不同内存设备的Shader内存占用峰值

Shader内存占用峰值走势

不同内存设备的Shader内存占用峰值走势

Shader资源内存峰值大幅上升的主要原因是不少项目进行了Unity版本的升级,属于正常现象。Unity 2019.4.21以后,Shader的内存统计发生了变化。原来统计在ShaderLab中的内存现在也被算在Shader资源本身了。

这里,UWA仍然需要提醒的是,Standard Shader在大家的项目中被经常误引入进来,建议大家在UWA性能简报中的“具体资源使用信息”中特别关注Standard Shader的使用情况。

同时,也建议研发团队结合本地资源检测服务,对Shader相关的规则做检测,尤其是变体数量。


七、RenderTexture资源内存

RenderTexture内存占用峰值总体情况

不同内存设备的RenderTexture内存占用峰值

不同内存设备的RenderTexture内存占用峰值分布

RenderTexture内存占用峰值走势

不同档次设备的RenderTexture内存占用峰值走势

不同档位机型上的RenderTexture内存占用都有波动,且在RT的效果分级上取得了一定的成效。


八、粒子系统资源内存

粒子系统内存占用峰值总体情况

不同内存设备的粒子系统内存分布占用峰值

不同内存设备的粒子系统内存分布占用峰值

粒子系统内存分布占用峰值走势

不同档次设备的粒子系统内存分布占用峰值走势

粒子系统的使用数量在逐步提升,并在Q4有明显的回落,保持在10~20MB之间,说明粒子系统的分级未见成效。
同时研发团队可以考虑在高端设备上使用GPU Particle 新功能,将大幅度提升粒子模块的性能。

同时,UWA推出的本地资源检测服务,针对项目工程中的静态资源(比如纹理、网格、音频、动画以及粒子系统、代码设置等等)可做检测,来检测美术资源是否有哪些资源设置不合理,做到静态资源的及时问题反馈、及时修复。


以上就是UWA发布的2022年度Unity手游性能测评汇总和分析。我们深信数据是会说话的,总有规律值得我们追溯求实、鉴往知来。同时我们也会不断细化评析的标准、分类等,让数据更具有代表性和说服力。

本报告中的数据最终解释权归侑虎科技所有。

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

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

相关文章

Flink dataStream,如何开窗,如何进行窗口内计算

目录 开窗方式 windowAll() window() 窗口类型 基于时间 基于数量 开窗后的处理函数 全量聚合函数(也叫窗口函数) 增量聚合函数 增量聚合函数携带一个全量聚合函数 开窗方式 windowAll() 对于没有keyBy的数据流 window() 对于KeyBy后的数据…

交工技术文档表格-SH3503-2001

(阀门试验记录)(管道补偿器安装记录)(管道组成件校验性检查记录)(SHA级管道管螺纹、密封面加工记录)(高压、SHA级管道弯管加工记录)(管道静电接地测试记录)管道系统安装检查与压力试验记录)管道系统泄露性与真空试验记录)(管道吹洗、清洗脱脂记录)(给排水压力管道强度及严密试验…

685页40万字某省市场监管智慧应用一体化项目(word可编辑)

1.2.3.1 数字XX公共能力建设现状 1.2.3.1.1 数字XX通用基础应用平台现状 通用基础应用平台提供具有共性特征的跨部门、跨层级业务应用,与本项目有关的平台包括某省网上办事大厅、某省政务服务 APP 统一平台(X政通 APP)、某省公共信用信息平…

一次SQL的完整处理流程

流程: 1. 客户端到连接器是通过TCP/IP SSL通信协议连接的, 2.连接器验证MySQL权限信息是否正常,连接量是否正常,长时间没有连接服务器会自动断开等等 ; 3. 然后到解析器,通过客户端发过来的sql进行语法解析…

电力系统储能调峰、调频模型研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

FS2114恒流模式的PWM升压IC,内置过温、关断、欠压、过流保护

FS2114是升压DC-DC转换器。其内置0.2Ω功率MOSFET的PWM电路,使该稳压器具有高效率。内部补偿网络还可以程度地 减少了6个外部元件的数量。 0.6V精密基准电压,内部软启动功能可以减低浪涌电流。 FS2114采用SOT23-6L封装,为应用节省空 间PCB。…

手机录屏怎么操作?有哪些好用的方法

在现代科技的时代,手机录屏已经成为了常见的操作。这项技术允许我们在手机上录制视频并分享给他人。但是,很多人可能并不知道如何进行手机录屏。下面我们将介绍手机录屏的操作方法和一些值得推荐的工具。 手机录屏操作方法 对于iOS用户,可以…

Java设计模式-适配器模式

适配器模式(Adapter Pattern)是一种常见的设计模式,它主要用于在不改变现有系统结构的情况下,将一个类的接口转换成客户端所期望的另一个接口。在本文中,我们将介绍适配器模式的基本概念、实现方法以及优缺点&#xff…

FS4056是一款完整的单节锂离子电池采用恒定电流/恒定电压线性充电器IC

FS4056是一款完整的单节锂离子电池采用恒定电流/恒定电压线性充电器IC。其底部带有散热片的 ESOP8/DIP8 封装与较少的外部元件数目使得 FS4056成为便携式应用的理想选择。FS4056可以适合 USB 电源和适配器电源工作。   由于采用了内部 PMOSFET 架构,加上防倒充电路…

CM201-1-YS_当贝纯净桌面-线刷固件包

CM201-1-YS_当贝纯净桌面-线刷固件包-内有教程 特点: 1、适用于对应型号的电视盒子刷机; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、修改dns,三网通用; 4、大量精简内置的没用的软件,运行速度提…

连接型CRM助力医疗企业把“成本中心”变成“利润中心”

在市场竞争日益加剧的情形下,企业获客成本大幅上涨,存量客户的维护和开发开始被重视,售后服务部门的职责在企业中发挥的价值越来越大。因为企业售后服务不仅能帮助客户解决问题的部门,还是客户与企业沟通的桥梁,将客户…

Linux——进程间通信(System V共享内存)

目录 共享内存示意图(理解共享内存的关键) shmget函数 第一个参数 ftok函数 使用ftok打印key值 第二个参数 第三个参数 返回值 打印shmget 再谈key值 举例理解key值 共享内存的过程 创建共享内存 关联共享内存 去除关联 ​编辑 使用共享内存通信 删除共享内存…

关于财会〔2020〕6 号文件解读,本地化部署+区块链或成为新趋势?

2020年3月,财政部、国家档案局发布了《关于规范电子会计凭证报销入账归档的通知》财会〔2020〕6 号(以下简称“通知”),对于电子会计凭证的范围、法律效力、适用条件都做出了进一步规范。这可以看作是财会档案管理由纸质化迈向全面…

每日一博 - 闲聊“突发流量”的应急之道

文章目录 概述思路 概述 面对“突发流量”的情况,我会采取以下应急措施: 扩容现有资源。这是最直接和最常用的方法。可以通过增加CPU、内存、节点等来扩容。典型案例是双11等大促期间,阿里会大规模扩容幕布等系统以应对流量激增。横向扩展,增加更多服务器或节点。通过增加服务…

【Unity-UGUI控件全面解析】| Scrollbar 滚动条组件详解

🎬【Unity-UGUI控件全面解析】| Scrollbar 滚动条组件详解一、组件介绍二、组件属性面板三、代码操作组件四、组件常用方法示例4.1 监听开关事件4.2 充当 进度条/血条 使用💯总结🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSD…

单片机之 理论概述

一 简介 51单片机,STM32单片机 二 最小系统板的构成 2.1 复位电路 复位:指使系统回到初始状态,重新开始执行程序。不同MCU的复位电平可能不同,比如51单片机为高电平复位,STM32为低电平复位。为防止系统正常执行过程…

7. 类的封装

一、类的封装 封装的含义&#xff1a; 所有属性都是私有的&#xff0c;外部不能直接访问提供与属性相关的成员函数&#xff0c;间接访问属性 模板代码&#xff1a; #include <iostream> using namespace std;class Clock { private:int hour, minute, second; public…

Linux之Jupyter NoteBook安装

一、Jupyter NoteBook简介 Jupyter Notebook&#xff08;此前被称为 IPython notebook&#xff09;是一个交互式笔记本&#xff0c;支持运行 40 多种编程语言。Jupyter Notebook 的本质是一个 Web 应用程序&#xff0c;便于创建和共享程序文档&#xff0c;支持实时代码&#xf…

10个可直接访问的AI工具

10个不同功能的AI工具 1、ChatGPT镜像&#xff1a;知汇 2、AI画图工具&#xff1a;Midjourney 3、AI图片背景移除工具&#xff1a;AI Background Remover – Remove Background From Image 4、AI图片无损放大工具&#xff1a;https://www.upscayl.org/ 5、AI老照片上色修复工具…

1459页54万字电力行业数字化转型监管云平台 解决方案(WORD)

本资料来源公开网络&#xff0c;仅供个人学习&#xff0c;请勿商用&#xff0c;如有侵权请联系删除。 目录 1 总体要求 1.1 系统框架及结构 1.1.1 总体架构 1.1.2 主配网一体化架构 1.1.3 数据流架构 1.1.4 数据流架构 1.1.5 功能结构 1.1.6 硬件结构 1.2 总…