垃圾回收算法手册:自动内存管理的艺术
编辑推荐
在自动内存管理领域,Richard Jones于1996年出版的《Garbage Collection: Algorithms for Automatic Dynamic Memory Management》可谓是一部里程碑式的作品。接近20年过去了,垃圾回收技术得到了非常大的发展,因此有必要将该领域当前*先进的技术呈现给读者。本书汇集了自动内存管理研究者和开发者们在过去50年间的丰富经验,在本书中,作者在一个统一的易于接受的框架内比较了当下重要的回收策略以及先进的回收技术。
本书从近年来硬件与软件的发展给垃圾回收所带来的新挑战出发,探讨了这些挑战给高性能垃圾回收器的设计者与实现者所带来的影响。在简单的传统回收算法之外,本书还涵盖了并行垃圾回收、增量式垃圾回收、并发垃圾回收以及实时垃圾回收。书中配备了丰富的伪代码与插图,以描述各种算法与概念。
本书特色
为1996年《Garbage Collection: Algorithms for Automatic Dynamic Memory Management》一书提供了完整的、*新的、**的续作。
*面讲解并行垃圾回收算法、并发垃圾回收算法以及实时垃圾回收算法。
深入剖析某些垃圾回收领域的棘手问题,包括与运行时系统的接口。
提供在线数据库支持,包含超过2500条垃圾回收相关文献。
内容简介
几乎所有的现代编程语言都采用了垃圾回收机制,因此深入了解此方面内容对于所有开发者而言都大有裨益。对于不同垃圾回收器的工作方式,以及当前垃圾回收器所面临的各种问题,这本手册都提供了专业的解答。掌握这方面的知识之后,在面对多种不同的垃圾回收器以及各种调节选项时,相信开发者能够更有把握。
本书共19章,第1章探讨为什么需要自动内存管理,并简要介绍对不同垃圾回收策略进行比较的方法;第2~5章详细描述4种经典的垃圾回收算法,包括标记-清扫算法、标记-整理算法、复制式回收算法和引用计数算法;第6章深入比较第2~5章所介绍的回收策略与算法;第7章介绍多种不同的内存分配技术,并进一步探究自动垃圾回收与显示内存管理这两种场景下分配策略的不同之处;第8章讨论为何需要将堆划分为多个不同的空间,以及如何管理这些空间;第9章介绍分代垃圾回收;第10章介绍大对象的管理策略以及其他分区策略;第11章介绍运行时接口,包括指针查找、能够安*发起垃圾回收的代码位置、读写屏障等;第12章讨论特定语言相关内容,包括终结机制和弱引用;第13章探讨现代硬件系统给垃圾回收器的实现者所带来的新机遇与挑战,同时介绍同步、前进、结束、一致等问题的相关算法;第14章介绍如何在挂起所有应用程序线程的前提下使用多个线程进行垃圾回收;第15~18章介绍多种不同种类的并发回收器;第19章探讨垃圾回收在硬实时系统中的应用。
作者简介
理查德·琼斯
(Richard Jones)
坎特伯雷-肯特大学计算机学院教授。1998年联合创立了国际存储管理研讨会,并担任*届会议主席。他发表了多篇关于垃圾回收技术、堆可视化技术、电子出版技术相关的论文,多次担任主要国际会议计划委员会的常务委员,同时还是《Software Practice and Experience》杂志的编辑委员会成员。因在动态存储管理领域的研究和学术成绩,他于2005年被聘任为格拉斯哥大学名誉研究员,2006年被计算机协会评为杰出科学家。
安东尼·霍思金
(Antony Hosking)
普渡大学西拉法叶分校计算机学院副教授。他的主要研究方向是编程语言的设计与实现,特别是数据库与持久化编程语言、面向对象数据库系统、动态存储管理、编译器优化以及编程语言和应用的架构支持。
艾略特·莫斯
(Eliot Moss)
马萨诸塞大学阿默斯特分校计算机科学学院教授。他的主要研究方向为编程语言及其实现,而且早在1978年就构建出垃圾回收器。除了自动存储管理领域之外,他在持久编程语言、虚拟机实现、事务性编程与事务内存方面也拥有较高的知名度。他曾与IBM研究员一起推动Jikes RVM Java虚拟机的学术研究许可,并*终促使其成为开源项目。