垃圾回收机制简单理解
一、垃圾回收基本过程
先是从创建一个对象开始说起,创建对象除了申请内存,初始化,还会给CLR提供一些额外的信息【对象类型指针和同步索引块】,他们就是通过这些信息和CLR联系起来,不然后面怎么回收呢。
CLR进行内存分配的时候,会分为栈,小对象堆(SOH),大对象堆(LOH)。
不同代的回收频率和回收算法都是不一样的。
二、常见的垃圾回收算法
标记类的算法
1、标记清除
2、标记压缩
3、标记复制
改进型的算法
1、增量算法
2、并发算法
三、GC二次回收机制
二次回收机制在.NET方面的话,是针对有终结器或析构函数的对象来说的,所以一般我们都不写析构函数(也不是完全不写,看情况而定)
有人问,知道这些有啥用呢。。。。。。。