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

几句话总结CLR内存回收

时间:2017-06-04 18:35:52      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:时间   nali   队列   nal   finalize   托管   引用   clr   垃圾   

关键字:对象可达图,代龄机制,终止化对象。

 

代龄机制:

0代满了之后,GC开始回收,剩下的对象升级为1代。(只有不可达的对象才会被回收。)

0代再回收几次之后,1代的对象慢慢增多然后达到阈值,GC同时回收0,1代对象。

1代回收剩下的升级2代,同样2代满了,GC会同时开始回收0,1,2代对象。

 

Finalize对象,终止链表,可达队列。

Finalize对象不可达之后,1.从终止链表中移到可达队列中--->2.特殊线程执行Finalize方法--->3.从可达队列中清除引用,变成不可达对象等待回收

至少要两次垃圾回收终止化对象和它所引用的对象在托管堆上的内存才能被回收,如果因为执行Finalize方法太长或其他原因第二次GC没有回收它,终止化对象代龄会增加,回收时间会更加的漫长。

 

几句话总结CLR内存回收

标签:时间   nali   队列   nal   finalize   托管   引用   clr   垃圾   

原文地址:http://www.cnblogs.com/dirichlet/p/3266449.html

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