- List的第二种遍历方法有GC产生:
(1) List的FindIndex会产生GC,原因还不知道,需要反编译来看。
- CSActivityInfo.SetXueYueZhiYe()
对于字符串产生的GC:
- 避免频繁调用分割字符串。
- 作为系统字符串处理。
- 如果同一个字符串的频繁操作,使用StringBuilder代替
3. SetShenglongyabiao():
字典内存大小:
(1) 字典在存储第一个遍历时会创建一个散列表来维护,创建散列表的过程会产生变量。所以在已经存储了数据后,再频繁clear()是会产生很多GC.
https://blog.csdn.net/zhaoguanghui2012/article/details/88105715
4.Foreach遍历
会产生GC,5.6以前的unity版本,因为有装箱操作。
CSActivityInfo.GetCombinDaysInShenLong()
CSActivityInfo.ActiveData.ActiveData()
Utility.GetDragonEmpireCountDown();
5.对ToString()有频繁调用:
优化前:
优化后:
其实可以把DayOfWeek缓存下。或者把string转成long 秒时间来比较大小。
6.
优化前:频繁分割字符串,产生GC.
优化后:
缓存tab数据 ; mtbSundryData
优化前:
优化后:
Table的id是不变的,那么Tab不变,创建的对象是不变的。素所以没必要每次都New.
7.
优化前:
相加,再排序
8. 优化后:
- List如果存储枚举,使用Contains()函数时,则会有内存泄漏。如果存储int则不会。
优化:可以使用第二种方式代替第一种方式