游戏研发全流程的性能测试及深度分析方法 笔记

【知识储备】
基础的引擎、渲染知识,常用性能测试工作的使用方法和性能问题的诊断方法。

【前期规划】
性能指标:FPS、内存、耗电、CPU占用、GPU占用、清晰度、灵敏度。
制定方法:寻找竞品,列出各指标进行对比。
目的:1.了解竞品资源设计规范,简介美术制作标准;2.开发过程中对比细节实现,取其精华。
关键:QA持续“版本性能测试”,统计出每个版本关键性能的变化趋势。

【发现问题】
性能标准 = 目标机型 + 性能指数
注意保持测试环境一致性,例如每次测试时手机亮度保持一致,否则耗电不一样。
测试方法:
1.资源测试:“压力测试”获得性能上限->粗粒度指标分配->细粒度指标分配;(QA)
2.脚本测试:脚本开销(程序)
测试工具:
1.引擎性能工具;
2.第三方性能工具;
3.自制脚本插件,如“场景热力图”;
4.多维度(机型、指标、测试时间)数据聚合;
5.特征聚合图。

【解决问题】
常规优化方式:
1.包体/Patch优化;
2.有损优化(面数、分辨率等);
3.性能分级排查。
知识体系:gameplay->引擎->操作系统->CUP/GPU/内存

【方法论】
不靠谱的方法:基于朴素经验主义的性能分析(即靠经验猜)
靠谱的方法:
1.基于pipeline,(借助监控工具)定位瓶颈(瓶颈即整个pineline的“短板”,拖累渲染的因素)->分组细化->找到问题->完成优化。
2.层次化的分析。
例子1:有一个游戏系统打开后很卡,凭经验觉得是模型面数太多,让美术见面,但并无明细效果。后发现问题出在渲染流程,一是renderPass过多切换太频繁导致内存带宽占用过大(找到瓶颈),二是点光源太多导致阴影面过多。
例子2:“哈利波特”手游在翻魔法书时特别卡,经分析是多线程同时播放大量特效引起的(详细原因没记住),改成单线程解决。

 

posted @ 2022-08-09 18:15  银龙背上的骑士  阅读(504)  评论(0编辑  收藏  举报