首页 > Windows开发 > 详细

C# GC

时间:2020-06-05 22:40:46      阅读:59      评论:0      收藏:0      [点我收藏+]
  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则不会。

 技术分享图片

 

 

 

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

 技术分享图片

 

C# GC

原文:https://www.cnblogs.com/horizonWYJ/p/13052305.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!