图书介绍

垃圾收集PDF|Epub|txt|kindle电子书版本网盘下载

垃圾收集
  • (美)Richard Jones,(美)Rafael Lins著;谢之易译 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:7115120706
  • 出版时间:2004
  • 标注页数:341页
  • 文件大小:36MB
  • 文件页数:360页
  • 主题词:电子邮件-基本知识

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

垃圾收集PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章简介1

目录1

1.1 内存分配的历史2

1.1.1 静态分配2

1.1.2栈分配3

1.1.3堆分配3

1.2状态、存活性和指针可到达性4

1.3显式堆分配5

1.3.1一个简单的例子5

1.3.2垃圾5

1.3.4共享6

1.3.5 失败6

1.3.3悬挂引用6

1.4为什么需要垃圾收集7

1.4.1语言的需求7

1.4.2 问题的需求7

1.4.3软件工程的课题8

1.4.4没有银弹9

1.5垃圾收集的开销有多大11

1.6垃圾收集算法比较11

1.7记法15

1.7.1堆15

1.7.2指针和子女15

1.7.3伪代码16

1.8引文注记16

2.1引用计数算法18

2.1.1算法18

第2章经典算法18

2.1.2一个例子20

2.1.3 引用计数算法的优势和弱点21

2.1.4环形数据结构22

2.2标记—清扫算法23

2.2.1 算法23

2.2.2标记—清扫算法的优势和弱点25

2.3节点复制算法26

2.3.1 算法27

2.3.2一个例子28

2.3.3节点复制算法的优势和弱点30

2.4比较标记—清扫技术和节点复制技术31

2.5需要考虑的问题32

2.6引文注记36

第3章引用计数38

3.1非递归的释放38

3.1.1 算法38

3.1.2延迟释放的优点和代价39

3.2延迟引用计数39

3.2.1 Deutsch-Bobrow算法40

3.2.2一个例子41

3.2.3 ZCT溢出43

3.2.4延迟引用计数的效率43

3.3计数域大小受限的引用计数44

3.3.1 “粘住的”计数值44

3.3.2追踪式收集恢复计数值44

3.3.3仅有一位的计数值45

3.3.4恢复独享信息46

3.3.5“Ought to be two”缓冲区47

3.4硬件引用计数48

3.5环形引用计数49

3.5.1函数式程序设计语言49

3.5.2 Bobrow的技术50

3.5.3弱指针算法51

35.4部分标记—清扫算法54

3.6需要考虑的问题60

3.7引文注记63

第4章标记—清扫垃圾收集66

4.1与引用计数技术的比较66

4.2使用标记栈67

4.2.1显式地使用栈来实现递归67

4.2.2最小化栈的深度68

4.2.3栈溢出70

4.3指针反转72

4.3.1 Deutsch-Schorr-Waite算法73

4.3.2可变大小节点的指针反转75

4.3.3指针反转的开销75

4.4位图标记76

4.5延迟清扫78

4.5.1 Hughes的延迟清扫算法78

4.5.2 Boehm-Demers-Weiser清扫器79

4.5.3 Zorn的延迟清扫器81

4.6需要考虑的问题82

4.7 引文注记84

第5章标记—缩并垃圾收集86

5.1 碎片现象86

5.2缩并的方式87

5.3 “双指针”算法89

5.3.1 算法90

5.3.2对“双指针”算法的分析91

5.3.3可变大小的单元91

5.4Lisp 2算法92

5.5基于表的方法93

5.5.1算法93

5.5.2间断表94

5.5.3更新指针95

5.6穿线方法95

5.6.1穿线指针95

5.6.2 Jonkers的缩并算法96

5.6.3前向指针97

5.6.4后向指针98

5.7需要考虑的问题99

5.8引文注记101

第6章节点复制垃圾收集103

6.1 Cheney的节点复制收集器104

6.1.1三色抽象104

6.1.2算法105

6.1.3一个例子106

6.2廉价地分配109

6.3多区域收集110

6.3.1静态区域111

6.3.2大型对象区域111

6.3.3渐进的递增缩并垃圾收集111

6.4垃圾收集器的效率113

6.5局部性问题114

6.6.1深度优先节点复制与广度优先节点复制116

6.6.2不需要栈的递归式节点复制收集117

6.6.3近似于深度优先的节点复制119

6.6.4层次分解120

6.6.5哈希表121

6.7需要考虑的问题122

6.8引文注记124

第7章分代式垃圾收集126

7.1 分代假设126

7.2分代式垃圾收集129

7.2.1一个简单例子129

7.2.2 中断时间131

7.2.3次级收集的根集合132

7.2.4性能133

7.3提升策略134

7.3.1 多个分代134

7.3.2提升的阈值135

7.3.3 Standard ML of NewJersey收集器136

7.3.4 自适应提升137

7.4.1每个分代一个半区140

7.4.2创建空间140

7.4分代组织和年龄记录140

7.4.3记录年龄141

7.4.4大型对象区域144

7.5分代间指针145

7.5.1写拦截器145

7.5.2入口表146

7.5.3记忆集147

7.5.4顺序保存缓冲区148

7.5.5硬件支持的页面标记149

7.5.6虚存系统支持的页面标记150

7.5.7卡片标记151

7.5.8记忆集还是卡片153

7.6非节点复制的分代式垃圾收集154

7.7调度垃圾收集155

7.7.1关键对象156

7.7.2成熟对象空间157

7.8需要考虑的问题159

7.9引文注记160

第8章渐进式和并发垃圾收集162

8.1 同步163

8.2拦截器方案165

8.3标记—清扫收集器167

8.3.1写拦截器167

8.3.2新单元171

8.3.3初始化和终止173

8.3.4虚存技术176

8.4并发引用计数177

8.5Baker的算法180

8.5.1算法181

8.5.2Baker算法的延迟的界限182

8.5.3Baker的算法的局限182

8.5.4 Baker算法的变种183

8.5.5动态重组184

8.6 Appel-Ellis-Li收集器186

8.6.1 各种改进188

8.6.2大型对象188

8.6.3分代189

8.6.4 生能189

8.7应变复制收集器190

8.7.1 Nettle的应变复制收集器190

8.7.2 Huelsbergen和Larus的收集器191

8.7.3 Doligez-Leroy-Gonthier收集器192

8.8 Baker的工作环收集器194

8.9对实时垃圾收集的硬件支持196

8.10需要考虑的问题197

8.11引文注记199

第9章C语言的垃圾收集202

9.1根不确定收集的一个分类203

9.2保守式垃圾收集205

9.2.1 分配205

9.2.2寻找根和指针206

9.2.3内部指针209

9.2.4保守式垃圾收集的问题209

9.2.5识别错误211

9.2.6效率212

9.2.7渐进式、分代式垃圾收集214

9.3准复制式收集215

9.3.1堆的布局215

9.3.2分配216

9.3.3垃圾收集216

9.3.4分代式垃圾收集218

9.3.5无法精确识别的数据结构218

9.3.6准复制式收集的效率219

9.4优化的编译器是“魔鬼”220

9.5需要考虑的问题223

9.6引文注记224

第10章C++语言的垃圾收集226

10.1用于面向对象语言的垃圾收集227

10.2对C++垃圾收集器的需求228

10.3在编译器中还是在库中230

10.4保守式垃圾收集230

10.5准复制式收集器231

10.6智能指针234

10.6.1在没有智能指针类层次的情况下进行转换234

10.6.2多重继承235

10.6.3不正确的转换235

10.6.5用const和volatile修饰的指针236

10.6.6智能指针的“泄漏”236

10.6.4某些指针无法“智能化”236

10.6.7智能指针和引用计数237

10.6.8一个简单的引用计数指针238

10.6.9用于灵活的垃圾收集的智能指针238

10.6.10用于追踪式垃圾收集的智能指针240

10.7为支持垃圾收集而修改C++241

10.8 Ellis和Detlefs的建议242

10.9终结机制243

10.10需要考虑的问题245

10.11引文注记246

第11章垃圾收集与cache248

11.1现代处理器体系结构248

11.2 cache的体系结构250

11.2.1 cache容量250

11.2.2放置策略251

11.2.3写策略252

11.3 内存访问的模式254

11.3.1标记—清扫技术使用标记位图和延迟清扫254

11.2.4特殊的cache指令254

11.3.2节点复制垃圾收集255

11.3.3渐进式垃圾收集256

11.3.4避免读取256

11.4改进cache性能的标准方法257

11.4.1 cache的容量257

11.4.2块大小260

11.4.3相联度260

11.4.4特殊指令262

11.4.5预取262

11.5失误率和总体cache性能263

11.6专用硬件265

11.7需要考虑的问题265

11.8引文注记266

第12章分布式垃圾收集268

12.1需求269

12.2虚拟共享存储器270

12.2.1共享虚拟存储器模型271

12.2.2共享数据对象模型271

12.3与分布式垃圾收集有关的课题272

12.3.1分类原则272

12.2.3分布式共享存储器之上的垃圾收集272

12.3.2同步274

12.3.3鲁棒性274

12.4分布式标记—清扫275

12.4.1 Hudak和Keller275

12.4.2 Ali的算法277

12.4.3 Hughes的算法277

12.4.6 Vestal的算法278

12.4.5 Augusteijn的算法278

12.4.7 Schelvis-Bledoeg算法278

12.4.4 Liskov-Ladin算法278

12.4.8 Emerald收集器279

12.4.9 IK收集器280

12.5分布式节点复制280

12.6.1Lermen-Maurer协议281

12.6.2间接引用计数281

12.6分布式引用计数281

12.6.3 Mancini-Shrivastava算法282

12.6.4 SPG协议282

12.6.5“Garbage collecting the world”283

12.6.6网络对象283

12.6.7带权引用计数284

12.6.8世代引用计数284

12.7.1 Halstead算法285

12.7.2标记算法285

12.7对actor进行垃圾收集285

12.7.3逻辑上集中式的收集器286

12.8引文注记286

术语表288

参考文献298

索引331

算法列表339

6.6重组策略1105

热门推荐