horizonWYJ

C# GC

  1. List的第二种遍历方法有GC产生:

(1) ListFindIndex会产生GC,原因还不知道,需要反编译来看。

 

 

 

  1. CSActivityInfo.SetXueYueZhiYe()

对于字符串产生的GC:

  1. 避免频繁调用分割字符串。
  2. 作为系统字符串处理。
  3. 如果同一个字符串的频繁操作,使用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

 

 

 

 

优化前:

 

 

 

 

 

 

优化后:

Tableid是不变的,那么Tab不变,创建的对象是不变的。素所以没必要每次都New.

 

 

 

 

7.

优化前:

相加,再排序

 

 

 

 

 

 

 

8. 优化后:

  1. List如果存储枚举,使用Contains()函数时,则会有内存泄漏。如果存储int则不会。

 

 

 

 

优化:可以使用第二种方式代替第一种方式

 

 

分类:

技术点:

相关文章:

  • 2021-10-13
  • 2022-12-23
  • 2021-09-23
  • 2021-12-11
  • 2021-12-27
  • 2022-02-04
  • 2022-12-23
  • 2021-06-10
猜你喜欢
  • 2022-02-03
  • 2021-10-20
  • 2022-02-04
  • 2022-12-23
  • 2021-11-20
  • 2022-01-01
相关资源
相似解决方案