JVM G1源码分析和调优彭成寒下载-JVM G1源码分析和调优豆瓣PDF电子书下载完整高清版

JVM G1源码分析和调优彭成寒下载-JVM G1源码分析和调优豆瓣PDF电子书下载完整高清版

编辑点评:

JVM G1源码分析和调优尝试从G1的原理出发,系统地介绍新生代回收、混合回收、Full GC、并发标记、Refine线程等内容;同时依托于jdk8u的源代码介绍Hotspot如何实现G1,通过对源代码的分析来了解G1提供了哪些参数、这些参数的具体意义

20201126100840.png

内容简介

G1作为JVM中成熟的垃圾回收器,已经广泛应用在众多公司的生产环境中。本书详细介绍G1涉及的基本概念和运行原理,以及调优方法。

主要内容共12章,主要内容有:

第1~2章介绍垃圾回收的历史和应用的算法,以及基本概念。

第3~7章从多方面分析G1的运行原理,如G1是如何分配对象的,G1的Refine线程、新生代回收、混合回收、FullGC等。

第8章介绍垃圾回收过程中如何处理引用。

第9章介绍G1引入的新特性:字符串去重。

第10章介绍G1垃圾回收过程中线程如何达到安全点。

第11章介绍如何选择垃圾回收器。

第12章介绍了下一代垃圾回收器Shenandoah和ZGC。

另外,为了降低学习难度,还给出了三个附录:附录A介绍如何开始阅读和调试JVM代码,附录B介绍如何使用NMT对JVM内存进行跟踪和调试,附录C介绍了Java程序员阅读JVM需要知道的一些C++知识。

章节详解

本书共分为12章,主要内容如下: 

第1章介绍垃圾回收的发展及使用的算法,同时还介绍一些重要并常见的术语。该章的知识不仅仅限于本书介绍的G1,对于研读JVM文章或者JVM源码都有帮助。 

第2章介绍G1中的基本概念,包括分区、卡表、根集合、线程栈等和垃圾回收相关的基本知识点。 

第3章介绍G1是如何分配对象的,包括TLAB和慢速分配,G1的对象分配和其他垃圾回收器的对象分配非常类似,只不过在分配的时候以分区为基础,除此之外没有额外的变化,所以该章知识不仅仅适用于G1也适用于其他垃圾回收器,最后介绍了参数调优,同样也适用于其他的垃圾回收器。 

第4章介绍G1 Refine线程,包括G1如何管理和处理代际引用,从而加快垃圾回收速度,介绍了Refinement调优涉及的参数;虽然CMS也有卡表处理代际引用,但是G1的处理和CMS并不相同,Refine线程是G1新引入的部分。 

第5章介绍新生代回收,包括G1如何进行新生代回收,包括对象标记、复制、分区释放等细节,还介绍了新生代调优涉及的参数。 

第6章介绍混合回收。主要介绍G1的并发标记算法及其难点,以及G1中如何解决这个难点,同时介绍了并发标记的步骤:并发标记、Remark(再标记)和清理阶段;最后还介绍了并发标记的调优参数。 

第7章介绍Full GC。在G1中,Full GC对整个堆进行垃圾回收,该章介绍G1的串行Full GC和JDK 10之后的并行Full GC算法。 

第8章介绍垃圾回收过程中如何处理引用,该功能不是G1独有的,也适用于其他垃圾回收器。 

第9章介绍G1的新特性:字符串去重。根据OpenJDK的官方文档,该特性可平均节约内存13%左右,所以这是一个非常有用的特性,值得大家尝试和使用。另外,该特性和JDK中String类的intern方法有一些类似的地方,所以该章还比较了它们之间的不同。 

第10章介绍线程中的安全点。安全点在实际调优中涉及的并不多,所以很多人并不是特别熟悉。实际上,垃圾回收发生时,在进入安全点中做了不少的工作,而这些工作基本上是串行进行的,这些事情很有可能导致垃圾回收的时间过长。该章除了介绍如何进入安全点之外,还介绍了在安全点中做的一些回收工作,以及当发现它们导致GC过长时该如何调优。 

第11章介绍如何选择垃圾回收器,以及选择G1遇到问题需要调优时我们该如何下手。该章属于理论性的指导,在实际工作中需要根据本书提到的参数正面影响和负面影响综合考虑,并不断调整。 

第12章介绍了下一代垃圾回收器Shenandoah和ZGC。G1作为发挥重要作用的垃圾回收器仍有不足之处,因此未来的垃圾回收器仍会继续发展,该章介绍了下一代垃圾回收器Shenandoah和ZGC对G1的改进之处及其工作原理。 

本书的附录包含如下内容: 

附录A介绍如何开始阅读和调试JVM代码。这里简单介绍了G1的代码架构和组织形式。另外简单介绍了Linux的调试工具GDB,这个工具对于想要了解JVM细节的同学必不可少。 

附录B介绍如何使用NMT对JVM内存进行跟踪和调试。这个知识对于想要深入理解JVM内存的管理非常有帮助,另外在实际工作中,特别是JDK升级中我们必须比较同一应用在不同JVM运行情况下的内存使用。 

附录C介绍了Java程序员阅读JVM时需要知道的一些C++知识。这里并未罗列C++的语法以及语法特性,仅仅介绍一些C++语言特有的、而Java语言没有的语法,或者Java语言中的使用或理解不同于C++语言的部分语法。这个知识是为Java程序员准备的,特别是为在阅读JVM代码时准备的。 

本书特点

1,图文并茂

作者亲手绘制了大量图片,使读者能直观看懂G1的底层原理。

2,深入浅出

分步骤解析新生代回收、混合回收、Full GC等原理,还绘制了典型过程的流程图

3,讲解细腻

对典型代码进行了大量注释,使读者更深入了解垃圾回收的实现原理

4,实操性强

不仅列出了G1的各种参数,而且给出了实际操作中的各种权衡思路。

JVM G1源码分析和调优豆瓣PDF电子书下载截图

JVM G1源码分析和调优彭成寒下载-JVM G1源码分析和调优豆瓣PDF电子书下载完整高清版插图(1)JVM G1源码分析和调优彭成寒下载-JVM G1源码分析和调优豆瓣PDF电子书下载完整高清版插图(2)JVM G1源码分析和调优彭成寒下载-JVM G1源码分析和调优豆瓣PDF电子书下载完整高清版插图(3)JVM G1源码分析和调优彭成寒下载-JVM G1源码分析和调优豆瓣PDF电子书下载完整高清版插图(4)

评分及评论

无用户评分

来评个分数吧

  • 5 分
    0
  • 4 分
    0
  • 3 分
    0
  • 2 分
    0
  • 1 分
    0

Comments