Unity的极致内存优化

   之前做了一个moba游戏,需要对项目做极致的内存优化。

   我们知道,AssetBundle有Unload(true) 和Unload(false)两种做法。

   一些常规做法就不说了,

 比如统计资源的出生死亡频率/时常,来设置资源的回收频率。

   比如,决定资源缓存到哪个级别:实例、预制体、主AssetBunle、依赖的AssetBunle、内存Asset镜像、缓存、网络。

   比如,引用计数=0时Unload(true)。

  

   只简单说下极限情况下优化内存的Unload(false)做法。

   1.我们生成资源统计表时,每个Assetbunlde,要记录它的最大被依赖数 X。

   2.加载Assetbunlde时,将依赖Assetbunlde的被依赖数 M++

   3.当依赖Assetbunlde的 M ==X时,表明它的被依赖量达到最大,说明这个时候,整个环境不会再有被依赖的情况,所以Unload(false)。

  通过这一系列的做法,我将游戏的战斗内存峰值,从780M优化到350M。

猜你喜欢

转载自www.cnblogs.com/sundayofit/p/9027242.html