C# GC

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

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

 C# GC

 

 

  1. CSActivityInfo.SetXueYueZhiYe()

对于字符串产生的GC:

  1. 避免频繁调用分割字符串。
  2. 作为系统字符串处理。
  3. 如果同一个字符串的频繁操作,使用StringBuilder代替

 C# GC

 

 C# GC

 

 

 

 

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()有频繁调用:

优化前:

 C# GC

 

 C# GC

 

 

 

优化后:

其实可以把DayOfWeek缓存下。或者把string转成long 秒时间来比较大小。

 C# GC

 

 

 C# GC

 

 

 

6.

优化前:频繁分割字符串,产生GC.

C# GC

 

C# GC

 

 

 

优化后:

缓存tab数据 ;  mtbSundryData

 C# GC

 

 

 

优化前:

 C# GC

 

 

 C# GC

 

 

优化后:

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

 C# GC

 

 

 

7.

优化前:

相加,再排序

 C# GC

 

 C# GC

 

 

 

 

8. 优化后:

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

 C# GC

 

 

 

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

 C# GC

 

C# GC

上一篇:RESTful API


下一篇:C#利用反射实现简单记事本功能插件