所谓的客户端性能,其实就是监测产品在真机上运行时的各项数据。那么我们要检测哪些数据呢?又要如何去监测呢?
我们要检测的数据如下:
· 内存占用
· CPU占用
· 电量消耗
· 流量消耗
· 帧数
使用工具
说到工具,现在工具有很多,大部分还是会使用, emmagee和 GT,还有 Itest等一些工具去监测产品在真机上运行时的各项数据。当然,还有一些是程序嵌入的可视化插件去监测。虽然这些监测的工具,所得到的数据并不是那么精确,但是我们还是能够通过多次对比,使误差最小化,从而得出结论。
不过目前笔者还是习惯使用开发工具去监测这些数据,感觉会比第三方的工具稍微精确一点。安卓的话就用 Android Studio,iOS就用 Xcode。通常监测时长为 2小时左右。
我们来看一下 Android Studio和 Xcode的监测的数据截图
Android Studio
这里并不是 CPU、GPU、内存、网络一起显示的,而是分开显示在不同的栏,需要自己去点击进行选择查看的。它所有的东西都是呈现为这种走势图的看起来很清晰。
Xcode
相比较而言,这里就是集中在一起显示所有的数据了,不过如果看那种走势图的话,也是分开的哦。
结果分析
测试的过程中,可能会遇到一些数据的异常,那么我们就需要去分析出现这些异常的原因了。我曾经遇到过,CPU的占用,一下子飙升甚至超过了 100%。如下图:
那么为什么会出现这种情况呢?我当时请教了大企鹅的测试朋友。他给出的结论是,出现这种情况只有两种原因。其中一个我记不太清楚了,但是我当时的分析结果是因为FPS的卡顿造成的。由于 FPS的卡顿,导致进程短时间内出现卡死的现象,CPU占用会瞬间飙升。
看完了问题,我们再来看如何去分析这些数据。
通过数据,与当时相应的操作,对应的模块分析客户端上的瓶颈。并且要进行纵横的对比,然后来提出优化的建议。所谓的纵横对比就是横向对比市场上其他产品,纵向对比本产品之前的不同版本。
好的,现在我们来说说优化的问题。我所接触到,了解的优化的方法目前只有两种,在这里分享给大家:
资源压缩:图片,配置文件等,进行压缩,尽量删除一些不必要的文件。减少安装包包体大小。
分包:由于整包的包体太大,采用分包的方法,使用动态加载的方式,让玩家在初次下载的时候,不会因为看到包体内存望而却步。当然也有缺点,个人感觉缺点就是,动态加载的时候,会有点卡卡的。