当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > .NET中的垃圾回收

ASP.NET
使用C# 开发掩码输入文本框
点击DataGrid的列标头在DataGrid最后一行显示该列的和
ASP.NET之Web打印-终极解决篇
SQL Server 2000 Reporting Services: 怎样根据用户的语言偏好显示本地化的信息
利用底层键盘钩子拦载任意按键(回调版)
如何禁止调整自定义控件的尺寸?
用VB6.0编写磁盘格式化程序
Aspx中导Excel
ASP.NET组件设计Step by Step(3)
下面真正开始讲事件的内容
如何有效的使用C#读取文件
如何在C#中加载自己编写的动态链接库(DLL)
Managed DirectX 相关(DirectX.Capture Class Library && DirectShow.NET)
XQuery Reference-from w3schools.com
[译]Visual Basic 2005在语言上的增强(十三)显式的数组范围及小结
lucene的首次应用
[VBA]在后台删除工作表后出现的怪问题
VB.NET 数据库查询 [SQL字符串的生成]
JavaScript调用服务器事件
在Window2003上执行System.Diagnostics.Process.GetProcessesByName等方法失败的原因

ASP.NET 中的 .NET中的垃圾回收


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 122 ::
收藏到网摘: n/a

GC的全称是garbage collection,中文名称垃圾回收,是.NET中对内存管理的一种功能。垃圾回收器跟踪并回收托管内存中分配的对象,定期执行垃圾回收以回收分配给没有有效引用的对象的内存。当使用可用内存不能满足内存请求时,GC会自动进行。

    在进行垃圾回收时,垃圾回收器会首先搜索内存中的托管对象,然后从托管代码中搜索被引用的对象并标记为有效,接着释放没有被标记为有效的对象并收回内存,最后整理内存将有效对象挪动到一起。这就是GC的四个步骤。

由上可见,GC是很影响性能的,所以一般说来这种事情况还是尽量少发生为好。

    为了减少一些性能影响,.NET的GC支持对象老化,或者说分代的概念,代是对象在内存中相对存现时期的度量单位,对象的代数或存现时期说明对象所属的代。目前.NET的垃圾回收器支持三代。每进行一次GC,没有被回收的对象就自动提升一代。较近创建的对象属于较新的代,比在应用程序生命周期中较早创建的对象的代数低。最近代中的对象位于零代中。每一次GC的时候,都首先回收零代中的对象,只有在较低代数的对象回收完成后仍不能满足需求的情况下才回收较高代数的对象。