背景:
我们的引擎是Egret,使用的是原生的EUI,转微信小游戏;
工程第一版出来后使用PerfDog测试一波数据。结果发现很多问题,本文主要分两部分
第一部分主要介绍通过PerfDog发现问题,
第二部分主要介绍通过PerfDog的数据定位并解决问题。
PerfDog具体操作可以看文档PerfDog使用说明
第一部分————数据分析
本次的案例多见于游戏第一版时的情况,比较常见,所以拿出来做个分析。
这里强调一点。分析问题需要整体数据联动分析,单独看某单一信息是没是意义的
第一次测试数据
FPS:

内存:

CPU:

结论:
1.我们发现在战斗时FPS波动较大
2.内存呈现持续上升的趋势
3.CPU的APP Usage太小,仅占1%左右
首先针对问题3的说明:
我之前选择测试的是微信app,而小游戏是作为子进程而存在的,所以应该选择PerfDog的子进程进行测试,这样得到的数据会更加的精准;下图的深色进程表示正在运行的顶层进程
针对这种多进程的应用测试:
iOS平台,APP多进程分为APP Extension和系统XPC Server。
比如:某电竞直播软件用到APP Extension扩展进程(扩展进程名LABroadcastUpload)。当然也可能用到系统XPC Server服务进程,如一般web浏览器会用到webkit。
Android平台,一般大型APP,比如游戏有时候是多进程协作运行(微信小游戏,微视等APP及王者荣耀等游戏多子进程),可选择目标子进程进行针对性测试。默认是主进程。如图王者荣耀


详细的使用说明可以看这里:PerfDog使用说明书
为了判断是什么导致的FPS波动较大,也为了判断是否存在OOM,现在我们来选择子进程进行第二次测试;

第二次测试数据
测试数据组成:
为了验证我的一些猜想,也为了更细致的定位问题,我们在测

本文通过PerfDog测试发现游戏在战斗时FPS波动大,内存持续上升,CPU使用率低等问题。深入分析,发现内存泄露与GPU压力大是主因。通过堆快照分析定位内存泄露源,优化drawcall减少卡顿,最终提升游戏性能。
最低0.47元/天 解锁文章
550

被折叠的 条评论
为什么被折叠?



