.Net中的垃圾回收机制
来源:互联网 发布:corel painter mac 编辑:程序博客网 时间:2024/05/14 03:30
http://blog.csdn.net/bluetzar/archive/2007/03/17/1532160.aspx
研究表明大部分在托管堆上分配的对象只有很短的生存期,因此堆被分成三个段,称作generations。新分配的对象被放在generation 0中。这个generation是最先被回收的——在这个generation中最有可能找到不再使用的内存,由于它的尺寸很小(小到足以放进处理器的L2 cache中),因此在它里面的回收将是最快和最高效的。
当generation 0的大小快要达到它的上限的时候,一个只在generation 0中执行的回收操作被触发。由于generation 0的大小很小,因此这将是一个非常快的GC过程。这个GC过程的结果是将generation 0彻底的刷新了一遍。不再使用的对象被释放,确实正被使用的对象被整理并移入generation 1中。
当generation 1的大小随着从generation 0中移入的对象数量的增加而接近它的上限的时候,一个回收动作被触发来在generation 0和generation 1中执行GC过程。如同在generation 0中一样,不再使用的对象被释放,正在被使用的对象被整理并移入下一个generation中。大部分GC过程的主要目标是generation 0,因为在generation 0中最有可能存在大量的已不再使用的临时对象。对generation 2的回收过程具有很高的开销,并且此过程只有在generation 0和generation 1的GC过程不能释放足够的内存时才会被触发。如果对generation 2的GC过程仍然不能释放足够的内存,那么系统就会抛出OutOfMemoryException异常。
c# 回收命令:
回收第2代:
GC.Collect(2);
- .net中的垃圾回收机制
- .Net中的垃圾回收机制
- 小议.Net中的垃圾回收机制
- 如何理解.net中的垃圾回收机制
- 如何理解.net中的垃圾回收机制
- 如何理解.net中的垃圾回收机制
- Asp.Net中的GC(垃圾回收机制)
- .net 垃圾回收机制
- .NET垃圾回收机制
- .NET 垃圾回收机制
- .NET垃圾回收机制
- .Net垃圾回收机制
- .NET中的垃圾回收
- .Net中的垃圾回收
- .NET的垃圾回收机制
- .NET框架垃圾回收机制
- .net framework 垃圾回收机制
- .net垃圾回收机制 详解
- Solr更新文档源码详解
- Access_Conn连接数据库
- 用git的windows客户端msysgit下载android代码
- [Sql Server]查看备份、还完进度(sql2008)
- 为什么我讨厌和尚、推销员、培训师和副市长?
- .Net中的垃圾回收机制
- Oracel连接数据库
- ABAP基础知识(完整版)
- MySql_Conn连接数据库
- 使用CREATE TABLE语句声明一个计算列(SQL Server)
- ABAP基础知识(完整版)
- SQLServer_Conn连接数据库
- 章节(一)测试流程-目前的挑战
- 测试参与项目的时机