|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《JVM G1源码分析和调优》
: a8 A; ]; F: Q& H' L7 d) wjava电子书推荐理由: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 知识。% U" y7 W2 u* R" m# d4 B
v% ?6 T7 g. D, e5 H3 g7 h. Q
作者:彭成寒# q: F# k; N0 q! S4 |$ F8 g+ _
出版社:机械工业出版社! Z9 K3 v* P0 P# n- g( s3 k6 L1 u
出版时间:2019年04月
$ C- K4 P4 |' l) j; @" s书籍价格:89.00元4 ]# I# ^/ H5 p! k4 b8 B
5 E! O8 z0 s- C# e- }
; e% `( [0 V: f/ r2 n. h; r( e
1 e% c9 ^, o w: _
java电子书目录:2 \3 P; N! k' ~% C! P( m6 h5 F
第1章 垃圾回收概述 1
' C5 g6 m' t" Q) H1.1 Java发展概述 1, J% R- f0 Q# y' e) N/ D) I |
1.2 本书常见术语 4: O2 p* V; G, A4 W5 U2 Z6 D5 M
1.3 回收算法概述 6
{5 y; W u8 b2 c/ K- K1.3.1 分代管理算法 7
j' i# `" Q8 Z, `1.3.2 复制算法 7
4 K; A; A7 {% ]* c! h7 _# l1.3.3 标记清除 8
6 I( S+ M P# ~# ~1.3.4 标记压缩 9
4 W. P! v+ C1 y" P1.3.5 算法小结 9; y. F' e- _, X& q3 B& q
1.4 JVM垃圾回收器概述 9
, I$ \# z; d% \# {8 b2 S% ]1.4.1 串行回收 94 ]( {& r+ s& r! ]- j1 i- F. Q
1.4.2 并行回收 10
* g6 T$ `, Y- X8 y# ?' Q1.4.3 并发标记回收 10
4 [7 k* J/ I8 z1 E$ N! X- j1.4.4 垃圾优先回收 10; Y3 `; ^; m6 z' s1 u) o
第2章 G1的基本概念 148 f" V, y" u$ u( v O
2.1 分区 14: f0 V$ a: X( c! B4 `1 z
2.2 G1停顿预测模型 20
1 ^+ q/ z( Z7 L/ K0 `' H2.3 卡表和位图 22
) E+ \: ^2 m: B5 U2 n$ A0 K2.4 对象头 24
# b$ o. {, B4 i( a* O( b* V2.5 内存分配和管理 27
7 y' e2 V" B7 K' Y( Q8 ^/ m2.6 线程 30
! j1 k5 J9 q2 \2.6.1 栈帧 32
- K. r+ e& _* D- S0 g2 H2 o2.6.2 句柄 34) e0 o" e' Q/ B& j. ]
2.6.3 JVM本地方法栈中的对象 36
* p6 @. z* u: w: H2.6.4 Java本地方法栈中的对象 40
* h- D& |3 m$ m" g S2.7 日志解读 407 r3 u7 [! `9 B! q& k
2.8 参数介绍和调优 41# \- Z1 [5 f$ s! t
第3章 G1的对象分配 43
( P/ s+ f# t; p m( g' r7 h) T0 a3.1 对象分配概述 43
6 A3 J2 S/ M# A, @( h5 }7 M3.2 快速分配 460 P% a, c1 Z( w" @* M Z
3.3 慢速分配 56
& j) a) w# ?6 y y* B3.3.1 大对象分配 58" {% S* q' Z* {7 x6 o6 p- G
3.3.2 最后的分配尝试 60
* _! |( B4 I0 n5 V1 m' t7 q3.4 G1垃圾回收的时机 61
8 x p9 E9 {1 Y$ {3.4.1 分配时发生回收 61
2 m* N6 s3 r _- O" V" }* y4 t. Z3.4.2 外部调用的回收 61
8 ?% n' O& z, V3.5 参数介绍和调优 62
2 x( p- _, A O7 }, l' S第4章 G1的Ref?ine线程 64
2 n2 _6 C( }1 x4.1 记忆集 64
! k T$ A8 E$ |" L5 Q4.2 Ref?ine线程的功能及原理 72+ v+ U( ?( ~6 n+ S
4.2.1 抽样线程 72 U4 c' X+ x6 j' M- Q. P
4.2.2 管理RSet 74
$ J; g4 r: x/ _0 ]5 J% i4.2.3 Mutator处理DCQ 78) B B1 q$ v# s3 V
4.2.4 Ref?ine线程的工作原理 78
' C1 P5 }7 C! v% h# D; [- b* s4.3 Ref?inement Zone 85
3 Z1 Z2 O' T" i6 r3 ?" @4.4 RSet涉及的写屏障 860 y p% y% x2 O! [6 I! E
4.5 日志解读 87/ X9 P1 `# r) t% G/ s4 y. t
4.6 参数介绍和调优 90. R M2 {% X, o
第5章 新生代回收 93
" V* h, ~8 {9 s5.1 YGC算法概述 93
- r, M1 ^4 ~8 }2 j! {5.2 YGC代码分析 96
2 Y6 h1 H4 E' n( _5.2.1 并行任务 963 P" A" X5 G4 g9 ~8 M1 f
5.2.2 其他处理 115! Q2 Q& w9 {1 j3 T1 [9 X1 v
5.3 YGC算法演示 116( f" W: W1 W, @- W: P# t
5.3.1 选择CSet 117 Q- ?0 K9 J: D$ t; o9 n
5.3.2 根处理 117
" b! Y- m+ v6 B3 ^6 n& e5.3.3 RSet处理 118( Z f3 _/ N# ?3 x" e
5.3.4 复制 119
1 W7 k2 V$ N( T, H0 F7 O4 C! t% d5.3.5 Redirty 120
% W M& r8 Z5 k- z" |) b5.3.6 释放空间 120! B; }4 R( S3 D% P* L
5.4 日志解读 1214 h0 n0 ]: v8 X7 P6 L3 P
5.4.1 YGC日志 121: e, R8 `3 d! {3 k* ~
5.4.2 大对象日志分析 125
- z$ ?# `0 Z8 G4 R5.4.3 对象年龄日志分析 1255 r) }3 h- z( _" u# t
5.5 参数介绍和调优 1268 E( b* x' K4 B' A
第6章 混合回收 1297 H6 V" x* Z8 Y3 k
6.1 并发标记算法详解 130* c4 ~0 ^* j% Z: P
6.2 并发标记算法的难点 133 V; H& k: w, A' C# z/ l6 ]9 Y* F& i5 x
6.2.1 三色标记法 133
) X# T4 d# |/ R. J+ _8 z* w6.2.2 难点示意图 133
' Q; O4 }$ `! F# x: Y& X0 b* i( E6.2.3 再谈写屏障 135& S" p0 `/ a1 N
6.3 G1中混合回收的步骤 141
, j8 I1 s, c! W( C6.4 混合回收中并发标记处理的线程 145
" u! e! u, O9 \! [; N0 v6.4.1 并发标记线程启动的时机 147# ~9 y1 a# v! t) w
6.4.2 根扫描子阶段 148( W+ Q# _7 p5 @; h+ C6 Y( G
6.4.3 并发标记子阶段 1523 Y. T B$ E9 c$ ~1 U/ e
6.4.4 再标记子阶段 159* X- G1 J" A+ S$ y& o
6.4.5 清理子阶段 1606 q3 P1 J8 @4 V' {! i2 `
6.4.6 启动混合收集 167 J. U. F& P! a7 R6 W, u
6.5 并发标记算法演示 1701 _! E7 W) u1 F; V
6.5.1 初始标记子阶段 171
) }: P5 l1 Y7 v6.5.2 根扫描子阶段 1718 \8 v1 @; x X5 L
6.5.3 并发标记子阶段 171
6 U) t$ h) w" V2 K6.5.4 再标记子阶段 172! x- ~1 C" k! D
6.5.5 清理子阶段 1739 K& E8 o0 a9 S# j4 z( y1 j
6.6 GC活动图 1749 q) }, \( }4 {
6.7 日志解读 174
5 X& h; W; O& T! Y" `4 `' u6.8 参数优化 178
3 _$ ^0 G2 d/ ~. `( q: Z/ _& f第7章 Full GC 181* w4 Y4 o9 G* A3 h1 R3 {$ b2 C
7.1 Evac失败 1810 S' u/ u, P/ }' b( g' k& ]
7.2 串行FGC 187
3 G# f8 N7 x H" g7.2.1 标记活跃对象 188' b5 ]. {4 G4 p* B# W( u
7.2.2 计算对象的新地址 190
* f- V3 v* X% D9 ~4 u7.2.3 更新引用对象的地址 190- A: ~ d' y6 m0 `8 U; }. m
7.2.4 移动对象完成压缩 193
" C5 W x& t7 b, C4 I& F7.2.5 后处理 194; p9 n6 g: b$ S) _! |
7.3 并行FGC 196
& @/ R. B5 a' X8 t8 S7.3.1 并行标记活跃对象 197, c9 \# z8 \7 r
7.3.2 计算对象的新地址 1987 U/ k$ S& @: i. V, U8 J5 p- t
7.3.3 更新引用对象的地址 200
; I. S0 z# @4 C* Y0 i( g7.3.4 移动对象完成压缩 200
7 J7 c$ h1 e6 Y" F- i7.3.5 后处理 201
$ F/ k8 ~ q9 d; p0 P# p. v7.4 日志解读 201/ R) S5 x$ R$ F1 i* r6 V
7.5 参数介绍和调优 202/ ]. v0 R% ]. |7 X
第8章 G1中的引用处理 203
( v1 }+ |# k: d, @5 {8.1 引用概述 203
! L" ^- D! L( A- S( B, l+ Y8.2 可回收对象发现 207" D8 l: K" i0 W2 `$ H1 d
8.3 在GC时的处理发现列表 210
1 Q1 y( y6 [* v- s }" `/ `- }8.4 重新激活可达的引用 214
x$ n6 O! {0 D1 G8.5 日志解读 2154 X, v& p9 Q) t: i
8.6 参数介绍和调优 215
: a0 W# |$ U. E第9章 G1的新特性:字符串去重 2171 k0 T9 N- j% o- k9 m
9.1 字符串去重概述 2174 E* }4 @" @8 F2 R
9.2 日志解读 220
2 D' f$ M6 Q0 k/ v( l9.3 参数介绍和调优 222
N% x7 P4 S4 B/ P' P, C9.4 字符串去重和String.intern的区别 222
' f- P/ u: i% J/ N+ Y9.5 String.intern中的实现 223, q7 I' O, Z3 D% q+ t1 \
第10章 线程中的安全点 226 Q# ^* n# j0 Y R! f5 y
10.1 安全点的基本概念 226
) X3 N1 u8 U" _- h10.2 G1并发线程进入安全点 227
( p2 |2 ~' A7 `. m10.3 解释线程进入安全点 2306 l! q# W$ k/ {/ @7 m! S- w `
10.4 编译线程进入安全点 230( h5 R% m6 U# O3 _# q
10.5 正在执行本地代码的线程进入安全点 233. f- {! k! ^5 X1 g1 D, Y& x
10.6 安全点小结 236
- x; i. _- Q1 ~0 A' B10.7 日志分析 236
, `( r' U9 y: }10.8 参数介绍和调优 238
/ \; _8 V# V& z6 c: j第11章 垃圾回收器的选择 2415 l/ @5 ]2 ^) K$ w: N) F
11.1 如何衡量垃圾回收器 241; \% c/ k. ? }; p% H
11.2 G1调优的方向 243
6 t# e4 Q5 W9 c; H8 R第12章 新一代垃圾回收器 2473 r; Q- S0 w: o `+ S
12.1 Shenandoah 247
- Y, l( C. K, ?) R/ b( T12.2 ZGC 258 javazx.com/ `# _6 Z& ^. A* V7 I1 V
附录A 编译调试JVM 262
6 e: o: Y, V# Q3 ?* M9 E' f C附录B 本地内存跟踪 272) D) ^. Z% s* t! V
附录C 阅读JVM需要了解的C 知识 276
# ~- _: D+ a% _4 V, XJava资料百度网盘下载地址链接(百度云):JVM G1源码分析和调优.pdf【密码回帖可见】
/ y' w9 C- @3 u* e7 S5 B/ D2 y; F- \. I# Z0 V( @9 T
$ u1 ~% b3 T7 |6 c7 [3 k3 E( i9 U1 j1 c; i: A2 H) {( P- e
9 z0 M$ L4 w0 ?- V% {" o4 L
|
|