ARPG手游性能分析报告:加载、GC、内存需重点关注
总体性能
(1)iOS设备的CPU性能普遍高于Android设备;
(2)Android设备上项目性能普遍偏低,CPU达标(超过33ms帧数比例<10%)比例仅为38.6%。
相较于MMORPG游戏,ARPG游戏的渲染和UI模块比重明显下降,自身逻辑代码的开销基本一致,加载模块比重明显上升。这是出于以下原因:
(1)相对于MMORPG来说,ARPG游戏的场景一般较小,UI界面相对简单,因此,渲染模块和UI模块的压力要小于MMORPG游戏;
(2)ARPG游戏重点突出打斗的丰富性和爽快感,所以ARPG游戏研发团队会为角色创建非常复杂的动画状态机,并且为了保证游戏副本打斗的流畅性,研发团队更倾向于在场景切换时将大量资源一次性载入,因此,ARPG游戏的自身逻辑代码和加载模块的压力更高。
下面我们就来具体分析下这些主流模块的开销情况。
主流模块性能
一、渲染模块
严重程度:噩梦
Draw Call的主体使用范围为32~166,峰值平均为209;
渲染三角面片的峰值集中在68.8K~268K,峰值平均为90.2K面。
UWA推荐:渲染三角面片峰值< 100K,目前达标比例: 55.2%。
不透明物体的渲染耗时平均为2.9ms,半透明物体的渲染耗时平均为4.6ms。
54.4%的项目使用了相机后处理特效,其具体分布如下:
(1)ARPG游戏无论是在Draw Call上还是在渲染的三角形面片数量上,均小于MMO游戏;
(2)但ARPG游戏的场景渲染三角形面片数量依然较高,仅55.2%的游戏能够将场景的渲染三角形面片数控制在10w以下。
二、加载模块
严重程度:地狱
(1)GC触发频率很高,是造成卡顿的主要原因之一;
(2)90%以上的游戏团队需要对GC的调用进行进一步规划,对代码的堆内存分配进行大力优化。
(1)Instantiate实例化操作平均每次调用的CPU耗时主要分布在: 2.6~44.1 ms,均值为9.4ms,每1万帧总调用次数主要分布在: 139~1941 次;
(2)Instantiate的频繁实例化是大多数研发团队非常容易忽视的问题。
Log输出操作平均每次调用的CPU耗时主要分布在: 3.0~33.1 ms,均值为9.8ms。
(1)Shader解析操作平均每次调用的CPU耗时主要分布在: 4.3~146.8 ms,均值为25.1ms;
(2)Shader解析时间较高,且大多数情况是相同Shader的重复开销,值得研发团队密切关注。
三、UI模块
严重程度:地狱
(1) 使用NGUI作为UI解决方案的项目占据了相当高的比例,NGUI目前仍然是研发团队对于UI系统使用的主要解决方案;
(2) UI模块的性能开销很高,QQ账号出售平台将近70%的研发团队都面临较为严重的性能问题;
(3) 与MMORPG不同的是,ARPG游戏UI模块的性能压力相对较小,优化难度相对较低。
四、粒子系统
严重程度:普通
五、动画模块
严重程度:普通
经过统计,目前仅使用Mecanim动画系统的ARPG游戏项目占比为45.3%,仅使用Unity3.x老版本动画系统的ARPG游戏项目占比为17.7%,两种系统混合使用的项目占比为37.0%。
内存模块
内存泄露几乎是所有手游都难避开的问题,其在ARPG手游中出现的情况占比为34.9%。
总体内存
严重程度:地狱
总体堆内存
严重程度:地狱
纹理资源
严重程度:地狱
网格资源
严重程度:普通
音频资源
严重程度:普通
Render Texture资源
严重程度:噩梦
字体资源
严重程度:普通
Shader资源
严重程度:普通
动画片段资源
严重程度:普通
希望以上数据能给大家的开发提供帮助。之后侑虎科技将不断与大家分享其他类型的数据,如ACT,SLG等
ARPG手游性能分析报告:加载、GC、内存需重点关注相关推荐
- Unity手游性能测评报告——MOBA篇
MOBA移动游戏性能分析报告:渲染.UI和逻辑代码是性能头号杀手! UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告,延续该系列,最近UWA对提交测试(登陆 www.uwa4d ...
- UWA发布|Unity手游性能蓝皮书
作为游戏行业的服务商,UWA不仅为游戏开发者提供高效的性能优化工具,也致力于为行业提供更全面.更具体的信息和服务.为此,UWA今天发布2019-2020年度手游蓝皮书,从总体性能数据.引擎各模块开销. ...
- 如何做Unity手游性能优化的
Unity性能优化参考: http://gameinstitute.qq.com/article/detail/39757 https://blog.uwa4d.com/archives/allino ...
- 腾讯是如何做Unity手游性能优化的
他山之石-腾讯是如何做Unity手游性能优化的 本文转载自:http://www.taidous.com/thread-44045-1-1.html?_dsign=ba1258b9 俗话说,用户体验不 ...
- 腾讯大咖说:战术竞技类手游性能如何管理?
MPD是Make Professional Discovery的缩写,MPD工作坊是一个围绕岗位角色发展的实践课堂,是由全球软件.互联网企业教练.一线研发团队带头人联合开发的角色胜任能力模型,是一种持 ...
- MMORPG的一份Unity手游性能蓝皮书
https://mp.weixin.qq.com/s/iEs-1O3wTntaTrrCnOBn-A 这可能是针对MMORPG最全的一份Unity手游性能蓝皮书 2017-07-21 侑虎科技 游戏葡萄 ...
- 如何快速优化手游性能问题?从UGUI优化说起
WeTest 导读 本文作者从自身多年的Unity项目UI开发及优化的经验出发,从UGUI,CPU,GPU以及unity特有资源等几个维度,介绍了unity手游性能优化的一些方法. 在之前的文章< ...
- 【cocos2d-x 大型ARPG手游研发----地图活起来了】
谈到地图不少人都说要做地图编辑器了,但是我暂时绕过这一步,如果不用寻路地图就不能移动?寻路就是会绕过障碍物的算法. 我做了一个简单的地图的思想,就是地图分层3层:背景层.可行区域层.遮罩层,但是地图就 ...
- Unity 手游性能优化
Unity 手游性能优化 物理 减少射线频率.长度.layer: 善用 Physics Matrix: 不要移动静态 Collider,需要移动的话加 RigidBody: 尽量使用简单的 Colli ...
最新文章
- 方向:AI研究方向历史性转变!从机器学习到人类研究
- Dispatcher.Invoke方法
- TensorFlow 从零到helloWorld
- 量化框架zipline--分钟回测改写
- Git图形化管理工具
- 论文笔记(SocialGCN: An Efficient Graph Convolutional Network based Model for Social Recommendation)
- 【DL】一文读懂深度学习中的N种卷积
- 苹果12可以双开微信吗 iPhone 12双开微信教程「iphone技巧」
- 计算机系统具有运行可靠性,计算机系统的可靠性技术
- MySQL与MariaDB性能比拼
- linux 使用 repotrack 下载 rpm 程序包及其所需依赖
- YTU 3795 GCD 和 LCM
- 计算机视觉领域摄像头布置,几种深度摄像头简介 | 增强视觉 | 计算机视觉 增强现实...
- 实验——一阶RC电路(试验记录)
- 前端HTML学习总结
- Linux—vmstat命令详解
- ajax上传图片java6,java ajax上传图片返回json数
- 爬取招聘数据 | scrapy 前程无忧51job
- orleans remote call error
- mysql练习-学生信息管理系统
热门文章
- DeepMind刚向星际争霸 II 的玩家们下了战书!你的对手可能是只AI,而你毫不知情...
- 程序员如何用Python了解女朋友的情绪变化?
- devexpress内置图片的位置_向微思WGIS中叠加位图图片
- leetcode-11-盛最多水的容器
- SpringMVC拦截器HandlerInterceptor使用
- (扫盲)RPC远程过程调用
- struts中如何查看配置文件中是否存在某个返回值
- [Oracle 学习] Oracle中将查询语句执行结果导入文本文件
- 练习系列 - 5、求子数组的最大和
- 构建通用类型- 继承 VS 聚合