JVM G1源码分析和调优

JVM G1源码分析和调优

评分

★★★★★

ISBN

9787111621973

出版社

机械工业出版社 2019-03-01出版

作者

彭成寒

分类

编程设计

内容简介
G1是目前最成熟的垃圾回收器,已经广泛应用在众多公司的生产环境中。我们知道,CMS作为使用最为广泛的垃圾回收器,也有令人头疼的问题,即如何对其众多的参数进行正确的设置。G1的目标就是替代CMS,所以在设计之初就希望降低程序员的负担,减少人工的介入。但这并不意味着我们完全不需要了解G1的原理和参数调优。笔者在实际工作中遇到过一些因参数设置不正确而导致GC停顿时间过长的问题。但要正确设置参数并不容易,这里涉及两个方面:第一,需要对G1的原理熟悉,只有熟悉G1的原理才知道调优的方向;第二,能分析和解读G1运行的日志信息,根据日志信息找到G1运行过程中的异常信息,并推断哪些参数可以解决这些异常。本书尝试从G1的原理出发,系统地介绍新生代回收、混合回收、Full GC、并发标记、Refine线程等内容;同时依托于jdk8u的源代码介绍Hotspot如何实现G1,通过对源代码的分析来了解G1提供了哪些参数、这些参数的具体意义;最后本书还设计了一些示例代码,给出了G1在运行这些示例代码时的日志,通过日志分析来尝试调整参数并达到性能优化,还分析了参数调整可能带来的负面影响。
AI简介
这是一本全面解析G1垃圾回收器的书籍,深入探讨了G1的设计原理、关键算法、内存管理、垃圾回收策略等核心技术。作者从G1的发展背景入手,逐步深入到G1的基本概念、对象分配、并发标记、新生代回收、混合回收、Full GC等各个方面,为读者呈现了一个完整的G1运行原理和调优过程。 书中首先介绍了G1垃圾回收器的基本概念,包括内存分配管理、垃圾回收、停顿预测模型、对象头、卡表和位图、线程、栈帧和句柄等。接着,深入讲解了G1堆内存分区的设计,以及G1老生代回收参数,帮助读者理解G1如何通过分区来提高垃圾回收的效率和吞吐量,以及如何通过参数调优来优化内存使用。 书中还详细介绍了G1新生代回收的算法执行过程,包括YGC算法的执行步骤和YGC算法演示,以及混合回收的概述,包括并发标记和垃圾回收两个阶段。同时,深入讲解了G1 Full GC处理过程,包括Evac失败和并行FGC的处理方式。 此外,书中还深入探讨了G1对象分配策略,包括快速分配和慢速分配,以及Refine线程的功能和原理,包括处理新生代分区的抽样和管理RSet。最后,介绍了新一代垃圾回收器,包括Shenandoah垃圾回收器和ZGC
阅读/下载地址