资源名称:深入理解JVM & G1 GC

内容简介:

G1 GC提出了不确定性Region,每个空闲Region不是为某个固定年代准备的,它是灵活的,需求驱动的,所以G1 GC代表了先进性。

《深入理解JVM & G1 GC》主要为学习Java语言的学生、初级程序员提供GC的使用参考建议及经验,着重介绍了G1 GC。中国的软件开发行业已经有几十年了,从目前的行业发展来看,单纯的软件公司很难有发展,目前流行的云计算、物联网企业实际上是综合性IT技术的整合,这就需要有综合能力的程序员。《深入理解JVM & G1 GC》作者力求做到知识的综合传播,而不是仅仅针对Java虚拟机和GC调优进行讲解,也力求每一章节都有实际的案例支撑。《深入理解JVM & G1 GC》具体包括以下几方面:JVM基础知识、GC基础知识、G1 GC的深入介绍、G1 GC调优建议、JDK自带工具使用介绍等。

通读《深入理解JVM & G1 GC》后,读者可以深入了解G1 GC性能调优的许多主题及相关的综合性知识。读者也可以把《深入理解JVM & G1 GC》作为参考,对于感兴趣的主题,直接跳到相应章节寻找答案。

作者简介:

周明耀,12年投资银行项目、分布式计算项目工作经验,IBM开发者论坛专栏作者、InfoQ专栏作者。一名IT技术狂热爱好者,一名顽强到底的工程师。推崇技术创新、思维创新,对于新技术非常热爱,致力于技术研发、研究,通过发布文章、书籍、互动活动的形式积极推广软件技术。欢迎添加微信共同探讨IT技术话题。

资源目录:

序VII

前言IX

第1章 JVM & GC基础知识1

1.1 引言2

1.2 基本术语3

1.2.1 Java相关术语4

1.2.2 JVM/GC通用术语24

1.2.3 G1涉及术语56

1.3 本章小结62

第2章 JVM & GC深入知识63

2.1 Java虚拟机内存模型64

2.1.1 程序计数器65

2.1.2 虚拟机栈66

2.1.3 本地方法栈72

2.1.4 Java堆73

2.1.5 方法区79

2.2 垃圾收集算法82

2.2.1 引用计数法82

2.2.2 根搜索算法83

2.2.3 标记-清除算法(Mark-Sweep)85

2.2.4 复制算法(Copying)87

2.2.5 标记-压缩算法(Mark-Compact)89

2.2.6 增量算法(Incremental Collecting)90

2.2.7 分代收集算法(Generational Collecting)91

2.3 Garbage Collection92

2.3.1 GC概念92

2.3.2 垃圾收集器分类93

2.3.3 Serial收集器94

2.3.4 ParNew收集器96

2.3.5 Parallel收集器99

2.3.6 CMS收集器102

2.3.7 Garbage First(G1)GC106

2.4 常见问题解析112

2.4.1 jmap -heap或-histo不能用112

2.4.2 YGC越来越慢112

2.4.3 Java永久代去哪儿了114

2.5 本章小结116

第3章 G1 GC应用示例117

3.1 范例程序118

3.2 选项解释及应用124

3.3 本章小结166

第4章 深入G1 GC167

4.1 G1 GC概念简述168

4.1.1 背景知识168

4.1.2 G1的垃圾回收机制169

4.1.3 G1的区间设计灵感169

4.2 G1 GC分代管理172

4.2.1 年轻代172

4.2.2 年轻代回收暂停173

4.2.3 大对象区间174

4.2.4 混合回收暂停176

4.2.5 回收集合及其重要性178

4.2.6 RSet及其重要性178

4.2.7 并行标记循环182

4.2.8 评估失败和完全回收186

4.3 G1 GC使用场景186

4.4 G1 GC论文原文翻译(部分)187

4.4.1 开题187

4.4.2 数据结构/机制188

4.4.3 未来展望190

4.5 本章小结191

第5章 G1 GC性能优化方案192

5.1 G1的年轻代回收193

5.2 年轻代优化203

5.3 并行标记阶段优化205

5.4 混合回收阶段207

5.4.1 初步介绍207

5.4.2 深入介绍208

5.5 如何避免出现GC失败210

5.6 引用处理211

5.6.1 观察引用处理212

5.6.2 引用处理优化213

5.7 本章小结214

第6章 JVM诊断工具使用介绍215

6.1 SA基础介绍216

6.2 SA工具使用实践217

6.2.1 如何启动SA217

6.2.2 SA原理及使用介绍222

6.3 其他工具介绍231

6.3.1 GCHisto231

6.3.2 JConsole232

6.3.3 VisualVM236

6.4 本章小结238

资源截图:

深入理解JVM & G1 GC