GC.Collect

you can make a try like this below:
 
string[] acc=new string[1000000];
 for(int ci=0;ci<acc.Length;ci++)
 {
 acc[ci]=@"efgewfw"+ci;
 }
 acc=null;
 
GC.Collect();
 GC.WaitForPendingFinalizers();
 GC.Collect();
手工释放我觉得有用,一个大的对象置成null的时候内存明显降低。
我记得有篇文章上说的是,如果在做大型运算之前是可以手动释放一次内存的,可以防止在运算开始之后发生回收,那样的话对系统占用就非常大了。
GC搜集垃圾的的时候是靠判断是否存在对象的引用
 所以obj = null;就等于释放,而实际上这个操作并不保证对象所占内存立即释放,要等GC循环到这里时才会释放...
 
大型对象最好实现IDisposable接口
 而关于GC.Collect(),速度比较慢,能不用则最好别用

转载于:https://www.cnblogs.com/baiyu/archive/2013/05/06/3063270.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值