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等待时间。

      

 

posted @ 2017-12-14 10:51  不三周助  阅读(788)  评论(0)    收藏  举报