垃圾回收机制简单理解


  一、垃圾回收基本过程

    先是从创建一个对象开始说起,创建对象除了申请内存,初始化,还会给CLR提供一些额外的信息【对象类型指针和同步索引块】,他们就是通过这些信息和CLR联系起来,不然后面怎么回收呢。

              CLR进行内存分配的时候,会分为栈,小对象堆(SOH),大对象堆(LOH)。

           不同代的回收频率和回收算法都是不一样的。

  二、常见的垃圾回收算法

    标记类的算法

                          1、标记清除

                          2、标记压缩

                          3、标记复制

                  改进型的算法

                           1、增量算法

                           2、并发算法

   三、GC二次回收机制

    二次回收机制在.NET方面的话,是针对有终结器或析构函数的对象来说的,所以一般我们都不写析构函数(也不是完全不写,看情况而定)

     有人问,知道这些有啥用呢。。。。。。。