内存优化一:代码优化

作者: 归零者 分类: Unity3D优化 发布时间: 2018-09-01 09:56

内存优化一:代码优化

1.foreach

            虽然新版unity解决了foreach会产生GC(垃圾回收)过早触发,出现卡顿的问题,但是第三方库并不一定解决了这个问题,所以还是不建议使用foreach使用,而是尽量使用for循环;foreach调用GetEnumerator时候会有堆内存上的操作,new 和dispose;

2.string

        熟悉C++的话,就会了解,每次使用string时候,都要在内存中创建一个新的字符串对象,就需要为该对象分配新的空间。特别是在循环中需要修改string对象,就会频发的分配新的空间。这时候推荐使用stringbuilder.append等来处理。

3.gameObject.tag

           gameObject.tag 会在内部循环调用对象分配的标签属性以及拷贝额外的内存,推荐使用gameObject.CompareTag(“xxx”)来替代。

4.对象池

使用对象池ObjectPool 对象池来管理对象,避免频繁的Instance,Destroy。

 asset store有learn pool 插件可以使用省去自己造轮子。ps:本人反对重复造轮子,Google都在使用开源项目,除非你做的更好轮子。

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

说点什么

avatar
  Subscribe  
提醒
跳至工具栏