一、分析性能瓶颈
通过Profiler分析工具 在代码块中用
Profiler.BeginSample("SolveFluidsToCpu");//SolveFluidsToCpu为分析的模块名
Profiler.EndSample();
来二分查找代码中延迟比较高的代码块
然后通过unity的Profiler查看
可知延迟最高的为 SolveFluidsToCpu 以及sort模块
排序用了将近22ms,计算流体压强密度等用了24ms 。
二、针对优化
1.排序优化
首先用系统的快排效率太低,针对本项目的粒子 设计 归并排序的算法,并解决其中的装箱拆箱的消耗
然后在分析优化后的延迟
发现排序延迟由22ms 优化到4.3ms。
2.针对流体压强,密集计算优化