资源守恒定律:为了完成一项功能,必须消耗一定资源。消耗的资源在CPU、GPU、Memory之间平衡。
CPU消耗比较高时:由于短时间内的计算量太大,导致画面流畅性降低,俗称跳帧,发热严重,耗电量高
1.将计算分到多个逻辑帧中进行计算,避免短时间内的性能超过负荷,俗称“分帧”(time-slice)。
2.将可以缓存的数据尽可能的缓存起来,避免重复计算和重复分配内存,常见的示例为“内存池”。
3.使用合理的算法和数据结构,比如:冒泡排序和直接插入排序在整体数组比较有序的情况下效率大大好于快速排序。把快排替换成是优化程序排序效率的一个常见的思路。
4.设置一个合适的Fixed Timestep,若计算的频率太高,自然会影响到CPU的开销。同时,若计算频率达不到游戏设计时的要求,有会影响到功能的实现,所以如何抉择需要各位具体分析,选择一个合适的值。
5.不要使用网格碰撞器(mesh collider):为啥?因为实在是太复杂了。
6.以物体的Transform组件为例,我们应该只访问一次,之后就将它的引用保留,而非每次使用都去访问。
7.如上所述,最好不要频繁使用GetComponent,尤其是在循环中。