第 6 章 垃圾收集算法

第 5 章介绍了垃圾收集器的通用行为,包括普遍适用于所有垃圾回收算法的 JVM 调优标志:如何选择堆的大小,如何选择代的大小,如何开启和设置 GC 日志,等等。

这些基础的调优标志已经足以应付大多数的场景。当它们无法解决问题时,往往需要查看使用的 GC 算法中具体是哪些操作影响了性能,进一步判断如何调整对应的参数,从而最大程度地减少 GC 操作对应用程序性能的影响。

调优特定收集器最要紧的信息是启动垃圾收集器后 GC 日志中的数据。从本章开始,我们会从 GC 的日志输出角度详细分析每种垃圾收集算法的行为;分析 GC 日志能帮助我们更好地理解垃圾收集算法是如何工作的,以及怎样调节参数能让它们工作得更好。之后的每一节都会包含一个性能调优的实战例子。

还有一些其他的因素也会影响几乎所有垃圾回收算法的性能,包括分配巨型对象、对象的生命周期既不长又不短,等等。我们会在本章的末尾讨论这些场景。