Unity GC优化原理及实践-4实践

1.GC原理

 

(1) 发生GC时,所有线程都必须停止工作。GC不合理的一种表现。

  如打开界面初始化界面逻辑的GC、一键添加道具触发红点重新计算的GC。  

(2)GC回收的是堆内存

 

 

 

变量定义在for循环外,节约了每次分配栈内存的时间,性能上略优于定义在for循环内。

变量定义在for循环内更符合变量作用域最小原则。

(3) 减少内存碎片。复用堆上的类型如List<T>

 

 

2.影响GC性能的主要因素

 

3.可变参数

 

4.Condition特性

 

  

5.装箱和拆箱

6.避免使用Linq

  排序本身会产生GC,以及最后的.ToList()操作

7.使用对象池

  避免频繁的创建和释放带来的GC,也是减少碎片

8.字符串

9.匿名方法

匿名函数gc分析:https://www.cnblogs.com/sifenkesi/p/9762183.html

常用于加载资源的回调,传参回调函数

10.协程

 

 

 

 

 

 

 

 

 

12.Unity所有返回是数组的API都会有GC Alloc

 

 

 

 

 

posted @ 2021-09-11 14:46  Don_Yao  阅读(486)  评论(0编辑  收藏  举报