垃圾回收的算法与实现pdf

图书网 2018年12月28日17:02:03
评论
2.3K
摘要

254幅图解,轻松掌握GC经典算法
实际源码剖析,深入探讨GC具体实现
从入门到进阶,一本书掌握自动内存回收的机制!
1.全面涵盖GC经典算法
标记-清除算法、引用计数法、复制算法、标记-压缩算法、保守式GC、分代GC、增量式GC、RC Immix算法,一网打尽!
2.理论结合实际
在系统介绍GC算法的基础上,重点解读Python、DalvikVM、Rubinius、V8等几种实用系统中的GC代码,探究GC算法的实际应用,做到了理论和实际的平衡统一。
3.图文直观、讲解细致
配合大量形象的插图和代码,将各个知识点掰开揉碎讲解,非常适合入门学习。

垃圾回收的算法与实现 内容简介

本书分为“算法篇”和“实现篇”两大部分。算法篇介绍了标记-清除算法、引用计数法、复制算法、标记-压缩算法、保守式GC、分代垃圾回收、增量式垃圾回收、RCImmix算法等几种重要的算法;实现篇介绍了垃圾回收在Python、DalvikVM、Rubinius、V8等几种语言处理程序中的具体实现。

垃圾回收的算法与实现 目录

序章

GC的定义 1

GC的好处 2

GC的历史 3

为什么我们现在要学GC 4

读者对象 6

本书中的符号 7

算法篇

第1章 学习GC之前

1.1 对象/头/域 12

1.2 指针 14

1.3 mutator 15

1.4 堆 15

1.5 活动对象/非活动对象 16

1.6 分配 16

1.7 分块 17

1.8 根 17

1.9 评价标准 19

第2章 GC标记-清除算法

2.1 什么是GC标记-清除算法 22

2.2 优点 29

2.3 缺点 29

2.4 多个空闲链表 31

2.5 BiBOP法 33

2.6 位图标记 34

2.7 延迟清除法 37

第3章 引用计数法

3.1 引用计数的算法 40

3.2 优点 44

3.3 缺点 44

3.4 延迟引用计数法 46

3.5 Sticky引用计数法 50

3.6 1位引用计数法 52

3.7 部分标记-清除算法 55

第4章 GC复制算法

4.1 什么是GC复制算法 66

4.2 优点 73

4.3 缺点 74

4.4 Cheney的GC复制算法 74

4.5 近似深度优先搜索方法 78

4.6 多空间复制算法 83

第5章 GC标记-压缩算法

5.1 什么是GC标记-压缩算法 89

5.2 优点 94

5.3 缺点 95

5.4 Two-Finger算法 95

5.5 表格算法 100

5.6 ImmixGC算法 106

第6章 保守式GC

6.1 什么是保守式GC 119

6.2 优点 122

6.3 缺点 122

6.4 准确式GC 123

6.5 间接引用 125

6.6 MostlyCopyingGC 127

6.7 黑名单 139

第7章 分代垃圾回收

7.1 什么是分代垃圾回收 142

7.2 Ungar的分代垃圾回收 143

7.3 优点 153

7.4 缺点 154

7.5 记录各代之间的引用的方法 154

7.6 多代垃圾回收 156

7.7 列车垃圾回收 157

第8章 增量式垃圾回收

8.1 什么是增量式垃圾回收 166

8.2 优点和缺点 174

8.3 Steele的算法 174

8.4 汤浅的算法 176

8.5 比较各个写入屏障 178

第9章 RC Immix算法

9.1 目的 180

9.2 合并型引用计数法 180

9.3 合并型引用计数法和Immix的融合 185

9.4 优点和缺点 189

实现篇

第10章 Python的垃圾回收

10.1 本章前言 192

10.2 对象管理 194

10.3 Python的内存分配器 196

10.4 第0层 通用的基础分配器 197

10.5 第1层 Python低级内存分配器 198

10.6 第2层 Python对象分配器 208

10.7 第3层 对象特有的分配器 231

10.8 引用计数法 234

10.9 引用的所有权 239

10.10 如何应对有循环引用的垃圾对象 245

10.11 性能调整的建议 269

第11章 DalvikVM的垃圾回收

11.1 本章前言 271

11.2 重新学习mmap 275

11.3 DalvikVM的源代码 279

11.4 DalvikVM的GC算法 282

11.5 对象管理 282

11.6 标记阶段 299

11.7 清除阶段 322

11.8 Q&A 327

第12章 Rubinius的垃圾回收

12.1 本章前言 329

12.2 Rubinius的GC算法 333

12.3 对象管理 334

12.4 走向准确式GC之路 343

12.5 GC复制算法 359

12.6 Q&A 375

第13章 V8的垃圾回收

13.1 本章前言 379

13.2 V8的GC算法 382

13.3 对象管理 382

13.4 通往准确式GC之路(V8篇) 389

13.5 GC标记-压缩算法 398

13.6 标记阶段 400

13.7 压缩阶段 412

13.8 Q&A 431

附录

附录A 简单语言入门:Python篇 432

附录B 简单语言入门:Java篇 435

附录C 简单语言入门:Ruby篇 436

附录D 简单语言入门:JavaScript篇 437

后记 439

参考文献 441

垃圾回收的算法与实现 精彩文摘

Garbage Collection 的 Garbage,也就是“垃圾”,具体指的是什么呢?

在现实世界中,说到垃圾,指的就是那些不读的书、不穿的衣服等。这种情况下的“垃圾”指的是“自己不用的东西”。

在 GC 中,“垃圾”的定义也是如此。GC 把程序不用的内存空间视为垃圾。关于“垃圾”的详细介绍,我们会在 1.5 节进行阐述。

图书网:垃圾回收的算法与实现pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

程序设计

重构 改善既有代码的设计(中文版)pdf

《重构:改善既有代码的设计》(中文版)所提的这些重构准则将帮助你一次一小步地修改你的代码,这就减少了过程中的风险。很快你就会把这些重构准则和其名称加入自己的开发词典中,并且朗朗上口...
程序设计

数据结构 C语言版 第2版pdf

适读人群 :普通高校电子信息大类本科生学习、考研,同时也适合零售和培训。 采用“案例驱动”的编写模式。书中结合实际应用,将各章按照“案例引入——数据结构及其操作——案例分析与实现”...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: