2018年11月26日

Conservative GC (Part one)

摘要: [toc] 保守式GC 保守式GC(Conservative GC)指“不能识别指针和非指针的GC” 不明确的根 不明确的根(ambiguous roots),下面三类都可以作为根。 事实上是不明确的根 寄存器 调用栈 全局变量空间 以栈为例 :在调用栈中有调用帧(call frame),调用帧里面 阅读全文

posted @ 2018-11-26 06:43 Léon_The_Pro 阅读(356) 评论(0) 推荐(0) 编辑

Mark Compact GC (Part two :Two-Finger)

摘要: [toc] Two Finger算法 Robert A.Saunders 对堆执行两次搜索 前提 Two Finger 算法, 必须将所有对象整理成大小一致 。它没有在对象的头中设立forwarding指针,而是 在对象的域中设立forwarding指针 即可。 概要 Two Finger算法由一下 阅读全文

posted @ 2018-11-26 02:49 Léon_The_Pro 阅读(368) 评论(0) 推荐(0) 编辑

Mark Compact GC (Part one: Lisp2)

摘要: [toc] 什么是GC 标记 压缩算法 需要对标记清除和GC复制算法有一定了解 GC标记 压缩算法是由 标记阶段 和 压缩阶段 构成。 标记阶段和标记清除的标记阶段完全一样。之后我们要通过搜索数次堆来进行压缩。 Lisp2 算法的对象 Donald E.Knuth 对象结构如图示: Lisp2 算法 阅读全文

posted @ 2018-11-26 02:40 Léon_The_Pro 阅读(416) 评论(0) 推荐(0) 编辑

Copying GC (Part two :Multi Space Copying GC)

摘要: [toc] 近似深度优先搜索方法 Paul R.Wilson、Michael S.Lam、Thomas G.Moher,1991 这个方法只是近似深度优先搜索,但可以做到深度优先执行GC复制算法。 Cheney的GC复制算法 假设所有对象都是2个字,下图所示是对象间的引用关系。 下图所示是执行该算法 阅读全文

posted @ 2018-11-26 02:35 Léon_The_Pro 阅读(307) 评论(0) 推荐(0) 编辑

导航