首页 › 优化 › 性能优化拾遗(一)性能优化之道
性能优化拾遗(一)性能优化之道
渲染性能参考指标
- 生成的APK大小
- 同屏三角形面数
- 渲染批次/DrawCall/SetPassCall
- 内存:纹理资源占用/Mesh资源占用/音效资源占用
- FPS
- 同屏指标可以参考一下同类型的游戏,截帧对比
工具
- Profiler
- Frame Debuger
- Memory Profiler com.unity.memoryprofiler
- Renderdoc
- Xcode
- Unity官方工具:https://upr.unity.cn
性能优化准则
性能优化问题的本质
- 慢与快的问题
- 前提
- 稳定性:不能因优化造成稳定性变差
- 兼容性:不能因优化导致兼容性变差
- 性价比:优化要有度,考虑成本与复杂度
性能优化的流程
- 发现问题(什么平台、什么操作系统、什么情况下出现问题,一般问题还是特例问题等)
- 定位问题(什么地方造成的性能问题,是cpu还是gpu,是带宽还是内存,我们要用什么工具、什么方法确定瓶颈)
- 研究问题(确定用什么方案处理这个问题,要考虑性能优化的前提)
- 解决问题(按问题研究的结论去实际处理,并验证处理结果与预期的一致性,以及是否带来新问题)
影响性能的四大类问题
隐藏的几类小问题
性能问题可能的情况
- 瓶颈可能性按由高到低的顺序排列(个人经验总结)
- CPU利用率
- 带宽利用率
- CPU/GPU强制同步
- 片元着色器指令
- 几何图形到CPU到GPU的传输
- 纹理CPU到GPU的传输
- 顶点着色器指令
- 几何图形复杂性
经常用的优化思路
GPU或带宽瓶颈型游戏优化
- 渲染流程与效果优化
- 渲染中生成资源优化
- DrawCall与SetPassCall
- 片元着色器
- 渲染三角形
记录结果很重要
- 需要记录优化前的报告
- 从而对比优化后的成果
- 不然没有说服力