CLR垃圾收集器
Posted pangtouxiaoc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CLR垃圾收集器相关的知识,希望对你有一定的参考价值。
CLR GC是一种引用跟踪算法,大致步骤如下:
1、暂停进程中所有的线程;
2、标记阶段,遍历堆中的所有对象,标记为删除,然后检查所有活动根,如果有引用对象,就标记那个对象可达,否则不可达;
3、GC压缩阶段,对堆中可达对象压缩,使占用连续的内存;
GC是基于代的垃圾回收算法,对象越新,生存期越短,对象越老,生存期越长,回收堆的一部分,速度快于回收整个堆。
1、初始化的对象都是0代对象,当0代对象容量不足时,启动GC,可达对象成为1代对象,不可达对象由GC删除;
2、当1代对象占用过多内存时,启动GC,1代对象中的可达对象成为2代对象;
GC触发条件:
1、显式调用System.GC.Collect;
2、Windows报告低内存情况;
3、CLR正在制裁AppDomain;
4、CLR正在关闭。
以上是关于CLR垃圾收集器的主要内容,如果未能解决你的问题,请参考以下文章