新书推荐 | 新一代垃圾回收器ZGC设计与实现

新书推荐

《新一代垃圾回收器ZGC设计与实现》

点击上图了解及购买

由资深Java工程师撰写,详细解剖ZGC的运行原理。

用大量图片展示了ZGC内部的运行原理,逐步揭开垃圾。

回收器算法的内幕,同时给出调优方法。

编辑推荐

自Java中引入垃圾回收器以来,垃圾回收器的发展从未停止过。JDK 11引入了一款新的垃圾回收器——ZGC。

本书尝试对ZGC的算法实现进行分解,用大量图片展示了ZGC内部的运行原理,逐步揭开垃圾回收器算法的内幕,然后再给出调优方法。

内容简介

ZGC是JDK 11中实现的垃圾回收器,针对的是未来普遍存在的大容量内存:面对太字节级别的堆容量,能具有很低的暂停时间(小于10ms)。本书详细介绍 ZGC涉及的基本概念、运行原理以及调优方法,分为10章,主要内容有垃圾回 收器概述、ZGC内存管理、ZGC线程、ZGC垃圾回收算法设计、ZGC日志解读、 ZGC参数和基准测试、关于ZGC的发展与展望、JVM的编译调试、Shenandoah简介等。

作者简介

彭成寒  高级Java工程师,目前主要从事风控系统设计、算法建模、大数据处理等工作。有超过10年Java和C++开发经验。

目录

前言

第1章 垃圾回收器概述  1

1.1  垃圾回收算法  2

1.2  JVM垃圾回收器  2

1.2.1  串行回收  3

1.2.2  并行回收  4

1.2.3  CMS  4

1.2.4  G1  5

1.2.5  ZGC  15

1.2.6  Shenandoah  19

第2章 ZGC内存管理  21

2.1  操作系统地址管理  21

2.2  ZGC内存管理  22

2.2.1  多视图映射  25

2.2.2  ZGC多视图映射  27

2.2.3  页面设计  30

2.2.4  对NUMA的支持  31

2.2.5  ZGC中的物理内存管理  32

2.2.6  ZGC中的虚拟内存管理  34

2.2.7  ZGC内存预分配  35

2.3  ZGC对象分配管理  36

2.3.1  对象空间分配  39

2.3.2  页面分配  42

第3章 ZGC线程  48

3.1  线程的基本概念  48

3.2  控制线程  49

3.2.1  时钟触发器  51

3.2.2  消息触发  53

3.2.3  VMThread  56

3.3  工作线程  59

3.4  垃圾回收触发的时机  62

第4章 ZGC垃圾回收算法的设计  67

4.1  并发垃圾回收算法  67

4.1.1  并发垃圾回收算法概述  67

4.1.2  ZGC并发算法的设计  68

4.2  并发处理  70

4.2.1  并发处理概述  71

4.2.2  ZGC并发处理算法  73

4.2.3  ZGC并发处理算法演示  75

第5章 ZGC垃圾回收算法的实现  78

5.1  垃圾回收的实现  78

5.1.1  初始标记  78

5.1.2  并发标记  88

5.1.3  再标记和非强根并行标记  94

5.1.4  非强引用并发标记和引用并发处理  98

5.1.5  重置转移集  105

5.1.6  回收无效的页面  106

5.1.7  选择待回收的页面  106

5.1.8  初始化待转移集合的转移表  108

5.1.9  初始转移  108

5.1.10  并发转移  110

5.1.11  垃圾回收算法再讨论  111

5.2  垃圾回收算法演示  112

第6章 ZGC日志解读  120

6.1  Xlog简介  120

6.2  测试用例设计  123

6.3  ZGC初始化信息  125

6.4  垃圾回收触发信息  127

6.5  垃圾回收过程中每一步的信息  130

6.6  统计信息  137

6.6.1  垃圾回收器信息  137

6.6.2  竞争信息  137

6.6.3  同步等待信息  139

6.6.4  内存信息  140

6.6.5  垃圾回收步骤信息  142

6.6.6  子阶段信息  144

6.6.7  线程信息  146

第7章 ZGC参数和基准测试  147

7.1  参数简介  147

7.1.1  ZGC新引入参数  147

7.1.2  GC通用参数  149

7.2  测试评估  150

7.2.1  测试准备  151

7.2.2  测试与测试报告  154

第8章 ZGC的发展与展望  160

8.1  类回收  161

8.2  单代回收  164

8.3  新功能和多平台  165

第9章 JVM编译调试  166

9.1  下载源代码  166

9.2  代码概览  167

9.3  编译JVM  168

9.4  调试ZGC  169

9.4.1  启动GDB  170

9.4.2  对象分配  170

9.4.3  触发垃圾回收  172

9.4.4  初始标记  172

9.4.5  并发标记  173

9.4.6  初始转移  174

9.4.7  并发转移  176

9.4.8  重定位  176

9.5  使用HSDB学习JVM中对象布局  178

9.5.1  C++对象布局原理  178

9.5.2  Java对象布局原理  180

9.5.3  用HSDB分析Java对象布局  180

第10章 Shenandoah简介  192

10.1  概述  192

10.2  Shenandoah垃圾回收策略  193

10.3  Shenandoah垃圾回收算法  194

10.3.1  正常回收算法  195

10.3.2  遍历回收算法  197

附录A Cassandra简介  200

附录B YCSB简介  202

你与世界

只差一个

公众号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值