每天学习一点.net(6) GC的原理 两步回收、代。
2013-06-19 23:30 黑眼圈Mars 阅读(272) 评论(0) 收藏 举报今天仔细看了GC的一章。
总结一下,整个GC的回收过程可以分为两步和三代。
两步是指 1 标记(marking) GC遍历所有线程栈,标记所有线程栈中的根(指向堆元素,类、数组等等)。2 遍历堆中所有未被标记的对象,然后进行碎片整理(compact)。
三代是指 0代、1代、2代。一次垃圾回收后,0代中不包含任何对象,对象要么被回收,要么进入1代。只有1代满了以后,才会进入2代。2代对象,至少经过了两次垃圾回收得检查。
进行2代回收时,必定进行0代和1代回收。进行1代回收时,必定进行0代回收。
一般大对象(>=84000bytes)的回收是在2代回收中进行的。
浙公网安备 33010602011771号