MMO移动游戏性能分析报告:渲染、UI、逻辑代码和内存需重点关注

简介:

总体性能

请输入图片描述

1)iOS设备的CPU性能普遍高于Android设备。
2)Android设备上项目性能普遍偏低,CPU达标比例仅为28.5%。

请输入图片描述

下面我们就来具体分析下这些主流模块的开销情况。

一、渲染模块
严重程度:噩梦

Draw Call的主体使用范围为45~185,峰值平均为215;
渲染三角面片的峰值集中在62K~152K,峰值平均为75K面。
UWA推荐:渲染三角面片峰值< 100K,目前达标比例: 53.9%。
请输入图片描述

不透明物体的渲染耗时平均为3.5ms,半透明物体的渲染耗时平均为4.5ms。
58.3%的项目使用了相机后处理特效,其CPU耗时主要集中在0.1~8.0ms,具体分布如下:
请输入图片描述

1)MMORPG游戏的场景渲染三角形面片数量普遍较高,仅53.9%的项目能够将场景的渲染三角形面片数控制在10w以下;
2)相机后处理特效在该类型游戏中已经开始较为广泛的使用。

二、UI模块
严重程度:地狱

请输入图片描述

请输入图片描述

1)使用NGUI作为UI解决方案的项目占据了相当高的比例,NGUI目前仍然是研发团队对于UI系统使用的主要解决方案;
2)UI模块的性能开销很高,将近80%的研发团队都面临较为严重的性能问题;
3)从性能上来看,UGUI无论从CPU占用还是堆内存分配,均大幅领先于NGUI。

三、逻辑代码
严重程度:地狱

请输入图片描述

1)GC触发频率很高,是造成卡顿的主要原因之一;
2)90%以上的游戏团队需要对GC的调用进行进一步规划,对代码的堆内存分配进行大力优化。

请输入图片描述

1)Instantiate实例化操作平均每次调用的CPU耗时主要分布在: 2.0~20.5 ms,均值为6.2ms,每1万帧总调用次数主要分布在: 109~1933 次。
2)Instantiate的频繁实例化是太多数研发团队非常容易忽视的问题;

请输入图片描述

Log输出操作平均每次调用的CPU耗时主要分布在: 2.6~22.2 ms,均值为7.2ms。

请输入图片描述

1)Shader解析操作平均每次调用的CPU耗时主要分布在: 6.5~217.5 ms,均值为28.8ms。
2)Shader解析时间较高,且大多数情况是相同Shader的重复开销,值得研发团队密切关注。

四、粒子系统
严重程度:普通

请输入图片描述

五、动画模块
严重程度:普通
请输入图片描述

目前仅使用Mecanim动画系统的MMO游戏项目占比为35.3%,仅使用Unity 3.x老版本动画系统的占比为19.3%,两种系统混合使用的占比为44.4%。


内存模块

内存泄露几乎是所有手游都难避开的问题,其在MMORPG手游中出现的情况占比为51.6%。

总体内存
严重程度:地狱

请输入图片描述

总体堆内存
严重程度:普通

请输入图片描述

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

纹理资源
严重程度:噩梦

请输入图片描述

Mesh资源
严重程度:噩梦

请输入链接描述

Render Texture资源
严重程度:噩梦

请输入图片描述

字体资源
严重程度:普通
请输入图片描述

Shader资源
严重程度:普通

请输入图片描述

AnimationClip资源
严重程度:普通
请输入图片描述

以上是UWA第一次尝试以项目类型的属性分类发布性能总结报告,之后我们将不断与大家分享其他类型的数据,如ARPG,ACT,SLG等。我们深信数据是会说话的,总有规律值得我们追溯求实、鉴往知来。同时我们也会不断细化评析的标准、划分,以使得这些数据更有代表性和说服力。

当然,UWA提供的不仅是性能深度测评的工具,解决开发过程中千变万化的需求才是服务的宗旨。简单优化,优化简单!我们会将服务至上的态度和诚意,努力延伸至每个开发者的身边。





原文出处:侑虎科技
本文作者:admin
转载请与作者联系,同时请务必标明文章原始出处和原文链接及本声明。

目录
相关文章
|
20天前
|
存储 测试技术 UED
Qt中实现界面回放的艺术:从理论到代码“ (“The Art of Implementing UI Playback in Qt: From Theory to Code
Qt中实现界面回放的艺术:从理论到代码“ (“The Art of Implementing UI Playback in Qt: From Theory to Code
64 1
|
6月前
|
XML 前端开发 JavaScript
使用代码给 SAP UI5 XML 视图添加自定义 CSS
使用代码给 SAP UI5 XML 视图添加自定义 CSS
42 0
使用代码给 SAP UI5 XML 视图添加自定义 CSS
|
22天前
|
缓存 Linux iOS开发
【C/C++ 集成内存调试、内存泄漏检测和性能分析的工具 Valgrind 】Linux 下 Valgrind 工具的全面使用指南
【C/C++ 集成内存调试、内存泄漏检测和性能分析的工具 Valgrind 】Linux 下 Valgrind 工具的全面使用指南
61 1
|
3月前
|
存储 传感器 监控
工业相机如何实现实时和本地Raw格式图像和Bitmap格式图像的保存和相互转换(C#代码,UI界面版)
工业相机如何实现实时和本地Raw格式图像和Bitmap格式图像的保存和相互转换(C#代码,UI界面版)
28 0
|
5月前
|
JSON JavaScript 数据格式
Vue移动端框架Mint UI教程-数据渲染到页面(六)
Vue移动端框架Mint UI教程-数据渲染到页面(六)
39 0
|
6月前
|
JavaScript 前端开发 数据管理
关于 SAP UI5 框架代码中的 Metadata.createClass
关于 SAP UI5 框架代码中的 Metadata.createClass
19 0
|
6月前
|
开发者
SAP UI5 manifest.json 里定义的 sap.ui.viewExtensions 区域的解析代码位置
SAP UI5 manifest.json 里定义的 sap.ui.viewExtensions 区域的解析代码位置
31 1
|
6月前
|
Web App开发 JavaScript 前端开发
通过 SAP UI5 ODataModel API 在 JavaScript 代码里访问 OData 元数据试读版
通过 SAP UI5 ODataModel API 在 JavaScript 代码里访问 OData 元数据试读版
51 1
|
6月前
|
存储 测试技术
SAP UI5 Currency 数据类型的校验逻辑分析
SAP UI5 Currency 数据类型的校验逻辑分析
43 0
|
6月前
|
存储
SAP UI5 setProperty 的执行逻辑单步调式和分析
SAP UI5 setProperty 的执行逻辑单步调式和分析
46 0