Dotnet GC原理

一、简介

   GC是Dotnet 内存管理的机制,GC负责内存的分配和回收。 

二、GC概念

     在以往,程序员都需要自己分配、释放资源。很多程序上的错误都因为内存没有释放导致。Dotnet的GC(垃圾收集)机制就让程序员从内存管理的繁琐工作中解放出来,从而专注于业务逻辑的开发。

三、实现

     1)内存分配

         所有引用类型都从堆中分配。堆可以看做一块连续的内存块。

    2)内存回收

       当程序请求分配内存时,GC会去堆查看是否还有足够的内存分配;如果不够,则进行内存回收。首先,它会遍历所有的根(全局、静态变量指针,堆栈中局部遍历指针,CPU存储器等)查找出在堆中所有还在被使用的对象,建立一张图。接着,压缩内存,把分散的、还在使用的内存合并移动要一块连续的内存块中,修正根的引用,重指向移动后的内存块。接着,对已分配、已没被使用的内存进行回收。

posted on 2008-12-17 16:14  TylerDurdon  阅读(440)  评论(0编辑  收藏  举报

导航