垃圾回收概要说明.docVIP

  • 31
  • 0
  • 约4.57千字
  • 约 6页
  • 2019-09-28 发布于山东
  • 举报
垃圾回收概要说明.doc

垃圾回收概要说明 思路比较: 1 作弊 最快、最简单 失去了实验的价值,但是可用于检测标记、清理这两个步骤的正确性 可移植性差,在VS2010上实现的不能在VC6.0上成功执行,需要调试、重新计算位移偏差 2 遍历 低效 实验的重点 可移植性强,甚至只需要做细小修改就可以移植到linux上 3 追踪 高效 因为测试用例的限制,其性能不能在本次实验中完全显现出来 采用面向对象的程序语言进行设计,能很好地引导客户程序正确使用;然而采用面向过程的程序语言进行实现,需要很完善的使用手册支撑 代码复杂度很高,非常容易出错 代码实现: 1.辅助数据结构 栈 2.收集根集 扫描局部变量 (src v2.0) 扫描全部变量 (src v2.1) 扫描堆变量 3.标记 4.清理 5.其他 已分配空间的管理 该机制用一棵splay树来管理已分配的空间,当调用splay (ptr_t i, Tree *t)时,即使i不在树中,树也会进行调整,以便使靠近i的值最靠近根,当然包括就在根节点。其中的contains(ptr_t i, Tree **the_tree)函数,检查i是否在分配的空间里,如果在,返回指向整块空间的指针,如果不在,则返回空指针。 空闲空间管理机制 空闲空间靠双向链表来管理,使用gc_remove_free函数和gc_add_free函数来对双链表进行添加和删除操作。 gc_malloc

文档评论(0)

1亿VIP精品文档

相关文档