前言
由于高速缓存对性能的影响至关重要,所以垃圾回收算法必须考虑到局部性问题。越来越多的应用程序已经多线程化,且运行在多核处理器之上,因而我们应当避免内存管理器成为性能瓶颈。另外,垃圾回收器的设计应当充分利用硬件的并行能力。
本文自始至终都密切关注现代硬件所带来的机遇与限制,对局部性问题的考量将贯穿全文。我们默认应用程序可能是多线程的。
尽管本文涵盖了很多更加简单、更加传统的算法,但我们还是花了近一半的篇幅来介绍并行回收、增量回收、并发回收以及实时回收。
我们希望本文能够帮助到对编程语言实现感兴趣的研究生、研究人员和开发人员。对于选修了编程语言、编译器构建、软件工程或操作系统方面高级课程的本科生而言,本文也会有所帮助。
此外,我们希望专业开发人员能够通过本文更加深入地了解垃圾回收面临的相关问题、不同回收器的工作模式,我们相信,与具体的专业知识相结合,开发人员在面对多种垃圾回收方法时,能够更好地进行回收器的选型与配置。由于几乎所有的现代编程语言都提供了垃圾回收机制,所以全面了解这一课题对所有开发者来说都是不可或缺的。
主要内容
本文内容总共分为19章的内容给大家介绍垃圾回收算法手册(自动内存管理艺术)。
本文第1章以探讨为什么需要自动内存管理作为开篇,简要介绍了对不同垃圾回收策略进行比较的方法。该章结尾介绍了贯穿全书的抽象记法与伪代码描述方式。
前7章假定所有堆中的对象均采用相同的管理策略,但根据许多因素可知这并非一种良好的设计策略。
第12章讨论了特定语言相关内容,包括终结机制和弱引用。
在接下来的章节中,我们将注意力集中在并发环境下。
第13章探讨了现代硬件系统给垃圾回收器的实现者所带来的新机遇与挑战,同时介绍了同步、前进、结束、一致等问题的相关算法。
接下来的4章介绍了多种不同种类的并发回收器,它们均放宽了“万物静止”这一要求,其回收过程只需要给用户程序引人十分短暂的停顿。
...
本文特色
本文从近年来硬件与软件的发展给垃圾回收所带来的新挑战出发,探讨了这些挑战给高性能垃圾回收器的设计者与实现者所带来的影响。在简单的传统回收算法之外,还涵盖了并行垃圾回收、增量式垃圾回收、并发垃圾回收以及实时垃圾回收。文中还配备了丰富的伪代码与插图,以描述各种算法与概念。
- 全面讲解并行垃圾回收算法、并发垃圾回收算法以及实时垃圾回收算法。
- 深入剖析某些垃圾回收领域的棘手问题,包括与运行时系统的接口。
- 提供在线数据库支持,包含超过2500条垃圾回收相关文献。
感谢大家支持!!希望大家能够好好学习垃圾回收算法~