游戏性能问题主要涉及到3个方面: 1 CPU 2 GPU 3 内存
CPU 方面主要降低单帧的耗时,以及避免出现卡帧 cpu问题主要解决思路, 将复杂任务分解到多帧中去;
GPU问题,降低游戏的drawcall,降低游戏的纹理内存空间的使用;
内存问题,降低单帧率内存垃圾的分配。
游戏性能问题核心目标就是保证流畅性。
主要常出问题的点: 内存资源大量分配和销毁,没有对频繁使用资源制作复用池,导致内存垃圾增多,导致cpu繁忙克隆对象。解决方案,保持关键资源的简单化,这样便于对资源进行清理,以进行下一次复用。
drawcall优化,降低同场景材质的数量,降低渲染元素的数量,确保渲染元素都是uniform scale这样才能做dynamic batch, 以及确保通用元素使用的材质是shared共享的,这样也才能 dynamic batch。
粒子效果,复用粒子效果,避免去实例化粒子效果,而是通过对象池来获取粒子效果。
避免单点过于复杂,可以使用多层的思想,通过多个处理批次,每个批次都是batch的方法,来达到目标效果,同时降低渲染次数。