《垃圾回收的算法与实现》
ebook书名:垃圾回收的算法与实现
作者:中村成洋 / 相川光
出版社:人民邮电出版社
副标题:ガベージコレクションのアルゴリズムと実装
出版年:2016年
页数:456
格式:ebook
ISBN:9787115427472
内容简介:
本书分为“算法篇”和“实现篇”两大部分。算法篇介绍了标记-清除算法、引用计数法、复制算法、标记-压缩算法、保守式GC、分代垃圾回收、增量式垃圾回收、RC Immix算法等几种重要的算法;实现篇介绍了垃圾回收在Python、DalvikVM、Rubinius、V8等几种语言处理程序中的具体实现。丛书信息:
图灵程序设计丛书 (共107册), 这套丛书还有 《图灵程序设计丛书:学习R》,《编译器设计》,《正则表达式必知必会》,《TCP/IP高效编程》,《Spark机器学习》 等。
目录:
序章
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
-
《愤怒》电子书免费下载
《愤怒》以朝鲜战争为背景,讲述了俄亥俄州北部温士堡学院里,一群青春躁动大学生们的叛逆挣扎。主人公是出身犹太家庭的青年马库斯,在亲人、信仰、爱情、世俗规则中寻求对身份的突破和精神自由,上下求索过程中与周遭环境产生对立,被动忍耐、愤怒抗争无果后...
01月01日[文学]
-
《已越雷池》电子书免费下载
《已越雷池》听说,每个人心中那都有一座雷池,他装着我们心里最深最痛,最不可抚触的秘密。她颤抖的手指捉住他的衣袖,仰起头,他无法捉摸的笑意在她眼前模糊一片。为什么,为什么没有人告诉她,这个世界上会有两张同样的脸?她努力张开嘴,很想很想问:是你...
01月01日[流行]
-
《国家的视角》电子书免费下载
有人说,科学前进一大步,诗意就后退一小步。科学思维的一大功能,就是将复杂事物精简,抽象为几条基本原则。无论是便于规划管理,还是提高生产效率,人们按照这些原则行事,似乎就能达到事半功倍的效果。不仅如此,科学规划产生表面的平等,制造出民主幻影,...
01月01日[文化]
-
《秘书工作手记》电子书免费下载
《秘书工作手记:办公室老江湖的职场心法》本书凝聚了一个从业多年、仍战斗在办公室工作一线的小秘书的实践经验总结和理论思考成果。它不是以往或粗制滥造、或板着面孔、或不说真话的职场书,而是敢于揭露职场真相的真实手记。它说真话,告诉你职场到底有什么...
01月01日[生活]
-
《癌症楼》电子书免费下载
该书《癌症楼》是索尔仁尼琴的代表作一,也是他据以获得诺贝尔文学奖的主要作品。“癌症楼也叫做13号楼”。科斯托格洛托夫经过二十几年的军队、劳改营、流放地的生活后,得了癌症,直至奄奄一息才好不容易住进了癌症楼。接受放射治疗后,他的病情渐渐好转。但...
01月01日[文学]