博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GC.Collect
阅读量:4870 次
发布时间:2019-06-11

本文共 501 字,大约阅读时间需要 1 分钟。

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

你可能感兴趣的文章
Python学习教程:Python3除法之真除法、截断除法和下取整对比
查看>>
CSS杂集(标准流&多行垂直居中)
查看>>
Javascript中数组与字典(即map)的使用
查看>>
php 正则匹配中文(转)
查看>>
C++不完整的类型
查看>>
实验一
查看>>
工具类 验证手机邮箱
查看>>
JavaScript 正则表达式入门教程
查看>>
jQuery调用ASP.NET的WebService
查看>>
memcached(十三)注意事项
查看>>
tomcat无法启动 startup.bat 一闪而过
查看>>
ITerms2在mac系统下的安装和配色,并和go2shell关联
查看>>
unity, copy-paste component
查看>>
nginx常见面试题1
查看>>
小白用shiro(1)
查看>>
微服务化之无状态化与容器化
查看>>
动态规划LeetCode174地下城游戏
查看>>
(十二)文件处理基础
查看>>
ubuntu 下更改分辨率
查看>>
Java 并发专题 : Semaphore 实现 互斥 与 连接池
查看>>