垃圾回收的算法与实现pdf高清中文版
分享到:
垃圾回收的算法与实现2016年8月由人民邮电出版社出版发行,是一本实际源码剖析深入,探讨GC具体实现从入门到进阶的书籍。计算机的进步,特别是硬件的发展之快总是让我们感到惊讶。在这波不断向前涌动的洪流中,技术领域的浮沉也愈发激烈。小编分享的这本垃圾回收的算法与实现分为“算法篇”和“实现篇”两大部分。算法篇介绍了标记-清除算法、引用计数法、复制算法、标记-压缩算法、保守式GC、分代垃圾回收、增量式垃圾回收、RCImmix算法等几种重要的算法;实现篇介绍了垃圾回收在Python、DalvikVM、Rubinius、V8等几种语言处理程序中的具体实现。这本书适合各领域程序阅读。
因为偶然的机会对GC产生浓厚兴趣,其本人却说不清楚为何喜欢GC,当被人追问原因时,总是回答“是缘分”。现在是CRuby的commiter,每天致力于GC的改善。
执笔本书“实现篇”。
相川光 ,游戏开发者。
京都大学在学期间开始研究GC。热爱GC但讨厌打扫。除了GC之外还喜欢咖喱。
执笔本书“算法篇”。
竹内郁雄(审校) ,东京大学名誉教授。
热爱对象,甚至会给因为bug没能得到重复利用而死去(释放)的对象上供。
日本Lisp黑客,著有《LISP入门》(初めての人のためのLISP)。
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
禁用于商业用途!如果您喜欢《精通python设计模式》,请购买正版,谢谢合作。
爱学习,请到3322软件站查找资源自行下载!
1、下载并解压,得出pdf文件
2、如果打不开本文件,别着急,这时候请务必在3322软件站选择一款阅读器下载哦
3、安装后,再打开解压得出的pdf文件
4、以上都完成后,接下来双击进行阅读就可以啦,朋友们开启你们的阅读之旅吧。
方法二:
1、可以在手机里下载3322软件站中的阅读器和百度网盘
2、接下来直接将pdf传输到百度网盘
3、用阅读器打开即可阅读
作者简介:
中村成洋 ,Network Applied Communication Laboratory Ltd. 研究员。因为偶然的机会对GC产生浓厚兴趣,其本人却说不清楚为何喜欢GC,当被人追问原因时,总是回答“是缘分”。现在是CRuby的commiter,每天致力于GC的改善。
执笔本书“实现篇”。
相川光 ,游戏开发者。
京都大学在学期间开始研究GC。热爱GC但讨厌打扫。除了GC之外还喜欢咖喱。
执笔本书“算法篇”。
竹内郁雄(审校) ,东京大学名誉教授。
热爱对象,甚至会给因为bug没能得到重复利用而死去(释放)的对象上供。
日本Lisp黑客,著有《LISP入门》(初めての人のためのLISP)。
垃圾回收的算法与实现目录:
序章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
免责声明:
来源于网络,仅用于分享知识,学习和交流!请下载完在24小时内删除。禁用于商业用途!如果您喜欢《精通python设计模式》,请购买正版,谢谢合作。
爱学习,请到3322软件站查找资源自行下载!
下载说明:
方法一:1、下载并解压,得出pdf文件
2、如果打不开本文件,别着急,这时候请务必在3322软件站选择一款阅读器下载哦
3、安装后,再打开解压得出的pdf文件
4、以上都完成后,接下来双击进行阅读就可以啦,朋友们开启你们的阅读之旅吧。
方法二:
1、可以在手机里下载3322软件站中的阅读器和百度网盘
2、接下来直接将pdf传输到百度网盘
3、用阅读器打开即可阅读
展开更多
垃圾回收的算法与实现pdf高清中文版下载地址
- 需先下载高速下载器:
- 专用下载:
- 其它下载: