垃圾回收的算法与实现 - (EPUB全文下载)
文件大小:7.22 mb。
文件格式:epub 格式。
书籍内容:
版权信息
书名:垃圾回收的算法与实现
作者:[日] 中村成洋 相川光(著) 竹内郁雄(审校)
译者:丁灵
ISBN:978-7-115-42747-2
本书由北京图灵文化发展有限公司发行数字版。版权所有,侵权必究。
您购买的图灵电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
图灵社区会员 云江月光石(flyingsky005@gmail.com) 专享 尊重版权
版权声明
审校者前言
前言
谢辞
本书评论
序章
GC的定义
垃圾的回收
GC 要做两件事
GC的好处
没有 GC 的世界
有 GC 的世界
GC的历史
GC 是一门古老的技术
GC 是一门古老的技术
引用计数法
GC 复制算法
50 年来,GC 的根本都没有改变
未知的第四种算法
为什么我们现在要学 GC
GC—— 存在即合理
多种多样的处理程序的实现
留意内存空间的用法
不会过时的技术
更何况,GC 很有趣
读者对象
本书中的符号
图中的箭头
伪代码
命名规则
空指针和真假值
函数
缩进
指针
域
for 循环
栈与队列
特殊的函数
算法篇
1 学习 GC 之前
1.1 对象 / 头 / 域
1.1.1 头
1.1.2 域
1.2 指针
1.3 mutator
1.4 堆
1.5 活动对象 / 非活动对象
1.6 分配
1.7 分块
1.8 根
1.9 评价标准
1.9.1 吞吐量
1.9.2 最大暂停时间
1.9.3 堆使用效率
1.9.4 访问的局部性
2 GC 标记-清除算法
2.1 什么是 GC 标记- 清除算法
2.1.1 标记阶段
2.1.2 清除阶段
2.1.3 分配
2.1.4 合并
2.2 优点
2.2.1 实现简单
2.2.2 与保守式 GC 算法兼容
2.3 缺点
2.3.1 碎片化
2.3.2 分配速度
2.3.3 与写时复制技术不兼容
2.4 多个空闲链表
2.5 BiBOP 法
2.6 位图标记
2.6.1 优点
2.6.2 要注意的地方
2.7 延迟清除法
2.7.1 new_obj() 函数
2.7.2 lazy_sweep() 函数
2.7.3 有延迟清除法就够了吗
3 引用计数法
3.1 引用计数的算法
3.1.1 计数器值的增减
3.1.2 new_obj() 函数
3.1.3 update_ptr() 函数
3.2 优点
3.2.1 可即刻回收垃圾
3.2.2 最大暂停时间短
3.2.3 没有必要沿指针查找
3.3 缺点
3.3.1 计数器值的增减处理繁重
3.3.2 计数器需要占用很多位
3.3.3 实现烦琐复杂
3.3.4 循环引用无法回收
3.4 延迟引用计数法
3.4.1 什么是延迟引用计数法
3.4.2 dec_ref_cnt() 函数
3.4.3 new_obj() 函数
3.4.4 scan_zct() 函数
3.4.5 优点
3.4.6 缺点
3.5 Sticky 引用计数法
3.5.1 什么是 Sticky 引用计数法
3.5.2 什么都不做
3.5.3 使用 GC 标记 - 清除算法进行管理
3.6 1 位引用计数法
3.6.1 什么是 1 位引用计数法
3.6.2 copy_ptr() 函数
3.6.3 delete_ptr() 函数
3.6.4 优点
3.6.5 缺点
3.7 部分标记 - 清除算法
3.7.1 什么是部分标记 - 清除算法
3.7.2 前提
3.7.3 dec_ref_cnt() 函数
3.7.4 new_obj() 函数
3.7.5 scan_hatch_queue() 函数
3.7.6 paint_gray() 函数
3.7.7 scan_gray() 函数
3.7.8 collect_white() 函数
3.7.9 限定搜索对象
3.7.10 paint_gray() 函数的要点
3.7.11 部分标记 - 清除算法的局限性
4 GC 复制算法
4.1 什么是 GC 复制算法
4.1.1 copy() 函数
4.1.2 new_obj() 函数
4.1.3 执行过程
4.2 优点
4.2.1 优秀的吞吐量
4.2.2 可实现高速分配
4.2.3 不会发生碎片化
4.2.4 与缓存兼容
4.3 缺点
4.3.1 堆使用效率低下
4.3.2 不兼容保守式 GC 算法
4.3.3 递归调用函数
4.4 Cheney 的 GC 复制算法
4.4.1 copy() 函数
4.4.2 执行过程
4.4.3 被隐藏的队列
4.4.4 优点
4.4.5 缺点
4.5 近似深度优先搜索方法
4.5.1 Cheney 的 GC 复制算法(复习)
4.5.2 前提
4.5.3 执行过程
4.5.4 执行结果
4.6 多空间复制算法
4.6.1 multi_space_copying() 函数
4.6.2 mark_or_copy() 函数
4.6.3 copy() 函数
4.6.4 执行过程
4.6.5 优点
4.6.6 缺点
5 GC 标记 - 压缩算法
5.1 什么是 GC 标记 - 压缩算法
5.1.1 Lisp2 算法的对象
5.1.2 概要
5.1.3 步骤 1 —— 设定 forwarding 指针
5.1.4 步骤 2 —— 更新指针
5.1.5 步骤 3 —— 移动对象
5.2 优点
可有效利用堆
5.3 缺点
压缩花费计算成本
5.4 Two-Finger 算法
5.4.1 前提
5.4.2 概要
5.4.3 步骤 1——移动对象
5.4.4 步骤 2——更新指针
5.4.5 优点
5.4.6 缺点
5.5 表格算法
5.5.1 概要
5.5.2 步骤 1(前半部分)—— 移动对象群
5.5.3 步骤 1(后半部分)—— 构筑间隙表格
5.5.4 步骤 2——更新指针
5.5.5 ............
书籍插图:
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » 垃圾回收的算法与实现 - (EPUB全文下载)