先说说优化的一些方法论。
性能优化问题的本质
- 慢与快的问题
但是这个解决慢的问题需要掌握三个前提
- 稳定性:不能因为优化造成程序稳定性差
- 兼容性:不能因优化导致程序兼容性差
- 性价比:优化有度,考虑成本与复杂度
性能优化的流程
- 发现问题(什么平台,什么系统,什么情况下出现问题,一般问题还是特例问题等)
- 定位问题(什么地方造成的性能问题,我们要用什么工具,什么方法确定瓶颈)
- 研究问题(确定用什么方案处理这个问题,要考虑性能优化的前提)
- 解决问题(按问题研究的结论去实际处理,并验证处理结果和预期的一致性)
影响性能的四大问题
- CPU
- GPU
- 带宽
- 内存
隐藏的几类小问题
- 功耗比
- 填充率
- 发热量
性能总览与瓶颈定位
建议先ios,再优化android
先共性性能优化,再兼容性方面的性能优化
unity分析工具 Porfiler散讲
Profiler常见的等待函数
- waitForTargetFps:等待达到目标帧率,一般这种情况cpu与gpu都没什么负载问题
- Gfx.waitFirGfxCommandsFromMainThread/waitForCommand:渲染线程已经准备接受新的渲染命令,一般瓶颈再CPU
- Gfx.waitForPresentOnGfxThread/waitForPresent:主线程等待渲染线程绘制完成,一般瓶颈再GPU
- WaitForJobGroupID:等待工作线程完成,一般瓶颈再CPU