unity 写代码过程中减少gc的方法
来源:互联网 发布:ubuntu mate下载15.10 编辑:程序博客网 时间:2024/06/07 07:37
1 字符串连接的处理。使用StringBuilder或String.Format来代替而不是用”+”来进行连接。因为将两个字符串连接的过程,其实是生成一个新的字符串的过程。而之前的旧的字符串就成为了垃圾。而作为引用类型的字符串,其空间是在堆上分配的,被弃置的旧的字符串的空间会被GC当做垃圾回收。
2 尽量不要使用foreach,而是使用for。foreach会涉及到迭代器enumerator的使用,而据传说每一次循环所产生的迭代器会带来24 Bytes的垃圾。那么循环10次就是240Bytes。
3 不要直接访问gameobject的tag属性。比如if (go.tag == “human”)最好换成if (go.CompareTag (“human”))。因为访问物体的tag属性会在堆上额外的分配空间。如果在循环中这么处理,留下的垃圾更多。
4 使用“池”,以实现空间的重复利用。
5 尽可能避免使用LINQ。部分功能无法在某些平台上使用,会分配大量GC Alloc。而且我很讨厌LINQ的一点就是它有可能在某些情况下无法很好的进行AOT编译。比如“OrderBy”会生成内部的泛型类“OrderedEnumerable”。这在AOT编译时是无法进行的,因为它只是在OrderBy的方法中才使用。所以如果你使用了OrderBy,那么在IOS平台上也许会报错。
6 每次GetComponent均会分配一定的GC Allow.
7 尽量减少New的使用。
8 Lambda表达式,使用不当会产生内存泄漏。
9 用Struct代替Class。
- unity 写代码过程中减少gc的方法
- 【Unity】减少GC回收
- [Unity优化]减少gc
- unity 减少GC回收
- android uiautomator自动化测试中写一个自定义的方法减少代码量
- Unity中使用扩展方法解决foreach导致的GC
- unity 打包IPA,减少文件大小的方法
- 减少代码嵌套的方法
- unity foreach 中产生GC的问题
- 减少GC开销的技巧
- 减少GC开销的措施
- 减少C++代码编译时间的方法
- 减少C++代码编译时间的方法
- 减少C++代码编译时间的方法
- 减少C++代码编译时间的方法
- 减少C++代码编译时间的方法
- 减少C++代码编译时间的方法
- 减少C++代码编译时间的方法
- 拓展KMP
- Java 基本数据类型
- cocos2d-x: android编译和调试
- Flume NG 基本架构及原理
- 【JAVA 提高班之七】多线程互斥和协作
- unity 写代码过程中减少gc的方法
- 洛谷p1198最大数
- C++中int、string等常见类型转换
- jquery之重写(扩展)$.ajax和$.fn.load等方法详解
- 网站地址、URL和域名的区别和关系
- VC++ UDP转TCP互发数据 UDP为服务端 TCP为客户端 可修改IP和端口最小化 2TCP/UDP中转
- 【转】Java中substring内存泄露问题
- 如何确定Spring容器之间的关系
- Ubuntu服务器配置(Mysql+Java+Tomcat)