垃圾回收的算法与实现

ISBN:978711542747X
作者:中村成洋,相川光
页数:456页

作者简介

★ Ruby之父Matz作推荐语:上古传承的魔法,彻底揭开垃圾回收的秘密!
★ 日本天才程序员兼Lisp黑客竹内郁雄审校
本书前半介绍基本GC算法,包括标记-清除GC、引用计数、复制算法的GC、串行GC的算法、并发GC的算法等。后半介绍V8、Rubinius、Dalvik、CPython等几种具体GC的实现。本书适合各领域程序员阅读。

书籍目录

序章
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


 垃圾回收的算法与实现下载 更多精彩书评



发布书评

 
 


精彩书评 (总计1条)

  •     全书分成算法和实现两个部分。从简单算法讲到复杂的,以丰富的图片解释说明了算法的过程,还是比较容易读的,并且中间会穿插一些GC界论文的related work,还是比较有趣的。但是,对算法的使用场景和对比之前各个算法优缺点大都只是一笔带过,并且真的就是只讲算法,完全脱离算法在实际语言中的运用,最起码应该说明算法中的思想被XXX语言在XXX场景下会用到,不知道作者是没想到还是有所保留,算法部分也真的想把所有论文用大白话描述了一遍而已。实现篇,讲了python,jvm,ruby,v8的GC实现部分,当然只是把GC相关的代码摘出来,然后旅顺成文即可,在源码分析的文章中算是不错的了,最起码有提要在贴代码,并且只是贴出关键部分的代码。总体来讲,属于GC的入门读物,可以拿来用来作为GC领域的导论手册,无法达到“圣经”级别。本人也是为了研究Golang的GC机制,才读的此书,接下来要看看https://book.douban.com/subject/26740958/此书在Golang代码注释中提及,期待ing

精彩短评 (总计8条)

  •     这书还是不错的,反正gc就那几种方式。对于Python,官方的解释器也就勉强及格能用,PyPy由于采用JIT技术,性能提升了一大截
  •     在看cms和g1的时候因为一些细节 花了四天时间看完 要是后面能有Java垃圾回收细节就更好了 整体上的伪代码给的很不错
  •     //R大推荐的书,这周末读下
  •     比Matz讲解的要好。就是看递归函数有些头疼。
  •     非常棒,松木行弘大师推荐
  •     前面还好,中间开始有些翻译读起来瞬间出戏。感觉译者不怎么看过国内的书似的。关于书的内容,有图解很方便理解~实现篇中,Dalvik虚拟机那部分应该说是跟出书的当时彻底不同了吧。
  •     还可以,前面讲算法还有些看头,中间讲代码的时候,伪代码所以没什么意思,无论是引用计数还是分代,都有这种问题,感觉很像工程上的优化问题。实现部分看了 Python 的。
  •     大致翻了下, 讲的还行.
 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024