游戏快报

MMO移动游戏性能分析报告:你不得不关注的模块数据有哪些?

MMO移动游戏性能分析报告:你不得不关注的模块数据有哪些?

两个月前,UWA发布了Unity性能数据分析报告,对提交测试(登陆www.uwa4d.com)的所有项目进行了客观的分析和汇总。今天,我们将最新的测试数据再按类型分列,并将其具有属性特征的几大性能模块数据在此分享,希望能给相关行业的研发人员一些更为明确和建设性的意见。

总体性能

mmo1.jpg

1)iOS设备的CPU性能普遍高于Android设备。

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

mmo2.jpg

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

一、渲染模块

严重程度:噩梦

Draw Call的主体使用范围为45~185,峰值平均为215;

渲染三角面片的峰值集中在62K~152K,峰值平均为75K面。

UWA推荐:渲染三角面片峰值< 100K,目前达标比例: 53.9%。

mmo3.png

不透明物体的渲染耗时平均为3.5ms,半透明物体的渲染耗时平均为4.5ms。

58.3%的项目使用了相机后处理特效,其CPU耗时主要集中在0.1~8.0ms,具体分布如下:

mmo4.png

1)MMORPG游戏的场景渲染三角形面片数量普遍较高,仅53.9%的项目能够将场景的渲染三角形面片数控制在10w以下;

2)相机后处理特效在该类型游戏中已经开始较为广泛的使用。

二、UI模块

严重程度:地狱

mmo5.png

mmo6.jpg

1)使用NGUI作为UI解决方案的项目占据了相当高的比例,NGUI目前仍然是研发团队对于UI系统使用的主要解决方案;

2)UI模块的性能开销很高,将近80%的研发团队都面临较为严重的性能问题;

3)从性能上来看,UGUI无论从CPU占用还是堆内存分配,均大幅领先于NGUI。

三、逻辑代码

严重程度:地狱

mmo7.jpg

1)GC触发频率很高,是造成卡顿的主要原因之一;

2)90%以上的游戏团队需要对GC的调用进行进一步规划,对代码的堆内存分配进行大力优化。

mmo8.jpg

1)Instantiate实例化操作平均每次调用的CPU耗时主要分布在: 2.0~20.5 ms,均值为6.2ms,每1万帧总调用次数主要分布在: 109~1933 次。

2)Instantiate的频繁实例化是太多数研发团队非常容易忽视的问题;

mmo9.jpg

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

mmo10.jpg

1)Shader解析操作平均每次调用的CPU耗时主要分布在: 6.5~217.5 ms,均值为28.8ms。

2)Shader解析时间较高,且大多数情况是相同Shader的重复开销,值得研发团队密切关注。

四、粒子系统

严重程度:普通

mmo11.jpg

五、动画模块

严重程度:普通

mmo12.jpg

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

内存模块

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

总体内存

严重程度:地狱

mmo13.jpg

总体堆内存

严重程度:普通

mmo14.jpg

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

纹理资源

严重程度:噩梦

mmo15.jpg

Mesh资源

严重程度:噩梦

mmo16.jpg

Render Texture资源

严重程度:噩梦

mmo17.jpg

字体资源

严重程度:普通

mmo18.jpg

Shader资源

严重程度:普通

mmo19.jpg

AnimationClip资源

严重程度:普通

mmo20.jpg

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

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