UNity Profier 常用优化
内存优化:
1.ManagedHeap.UsedSize:托管堆的使用。
不要超过20MB,否则性能会有点问题。
2.SerializedFile
序列化文件,把显示中的prefab,atlas等资源加进内存。
3.资源优化
贴图:
许多贴图采用的format格式是ARGB 32 Bit,所以保真度很高,但占用内存很大。在不失真的情况下使用 ARGB 16 bit 就会减少一倍。
有透明贴图但有alpha通道的贴图作出处理。
当加载一个新的prefab或贴图,不及时回收,他就会永驻内存中,就算切换场景也不会销毁。应该确定物体不再使用或长时间不用,就先把物体置null,然后调用Resource.UnloadUnusedAssets,才能真正释放内存。
AudioClip: 音效音乐
播放长时间的音乐文件需要进行压缩成.mp3或ogg格式。时间较短的用.wav格式。
代码优化:
unloadUnusedAssets 操作(这个非常耗时,一般在切换场景的时候进行)
if(other.tag == a.tag) other.CompareTag(a.Tag) ,因为other.tag会产生180B的GC Allow
少用Forrach,因为每次Foreach会昌盛一个enumerator (约16B的内存分配),尽量用for
Lambda 表达式,使用不当会产生内存泄漏
尽量控制StartCortinue的次数,开启一个协程,至少分配37B的内存,
StringBuilder代替字符串连接。
少使用GetComponent
模型优化:
使用一些贴图的时候可以采用LOD等技术使模型面数减少以增加FPS帧率,并使用遮罩剔除技术。模型优化就是尽量减少面数和点数,减少CPU,GPU工作。
Profier 认识:
WaitFortargetFps :
Vsync(垂直同步),即显示当前帧的CPU等待时间。

浙公网安备 33010602011771号