码迷,mamicode.com
首页 > 其他好文 > 详细

CLR垃圾收集器

时间:2020-06-27 14:45:03      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:bsp   标记   阶段   window   否则   条件   垃圾   对象   关闭   

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垃圾收集器

标签:bsp   标记   阶段   window   否则   条件   垃圾   对象   关闭   

原文地址:https://www.cnblogs.com/pangtouxiaoc/p/13198285.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!