|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《JVM G1源码分析和调优》
6 Y9 V4 x7 l5 X$ i# e& Bjava电子书推荐理由: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 知识。
! b- y9 F& B( O* g' X
0 C4 ?6 C- b, y p6 ~; A7 h. ^, n作者:彭成寒. P* _) a% L! k I# p' E
出版社:机械工业出版社
" t$ t6 y! W( V% Q出版时间:2019年04月
( R$ P, Y' v2 d! |, i, u书籍价格:89.00元7 n. T& J1 z: {; [
. q; |8 u2 O, b" K; i4 s
- l2 _% I/ f- }0 r4 E
1 b; I2 N3 l$ B& [java电子书目录:: U! M" ]2 q0 W& k9 g& @9 ^: `5 e
第1章 垃圾回收概述 1
9 ~3 |( A; u, Y0 Y8 D- D6 f1.1 Java发展概述 12 }* a/ r" k( {
1.2 本书常见术语 4" ?* [4 e4 V/ V) D, Y; C2 B
1.3 回收算法概述 6
( d, j- e) X1 |; U; n1.3.1 分代管理算法 7! B ?4 C' X& O; F& R6 O
1.3.2 复制算法 7. E( c7 A$ u! v f, d
1.3.3 标记清除 8& p2 l0 ]& d% {1 y8 x5 W. k, Y1 E, t
1.3.4 标记压缩 9( h, C. t6 r4 A, p+ ^
1.3.5 算法小结 9
4 S6 S, Y% n4 D7 ~& \$ ~1.4 JVM垃圾回收器概述 9( v8 S) Q0 t e" k) U9 f5 a3 k
1.4.1 串行回收 97 p, M$ `4 l4 y9 ]# F+ l. [
1.4.2 并行回收 10
& r( l. C; J9 f' B/ e0 l+ m1.4.3 并发标记回收 10
% Y( Y, [+ {( F5 N1.4.4 垃圾优先回收 10 W8 c( w; K( C* b, N: Y
第2章 G1的基本概念 14
9 _ J0 _3 l# G2 z6 c/ j2.1 分区 14
' N7 M: S9 o! z1 {2.2 G1停顿预测模型 20
0 |9 I' [7 }& b* W+ N2.3 卡表和位图 22
4 C- j7 _% v) a! p2.4 对象头 24
" Q% A4 j+ G j4 F8 J$ z9 a2.5 内存分配和管理 27( L6 N4 H, r; |# X( ^( r, J
2.6 线程 30" T* C s( a. ?, C+ K
2.6.1 栈帧 32
8 ~+ V9 R4 X4 d3 z R2.6.2 句柄 344 M" L, R3 z0 {8 }: B3 i
2.6.3 JVM本地方法栈中的对象 36/ t( R) R5 E$ p4 E/ s# w E4 d- w
2.6.4 Java本地方法栈中的对象 40
, ~4 i( R9 u* K4 d9 V# v* U2.7 日志解读 40
/ g! N4 R1 k) N& c# ~2.8 参数介绍和调优 41& ~9 h9 O4 P+ p0 }: M8 C
第3章 G1的对象分配 43( L" B+ |/ R: l! {* I5 D
3.1 对象分配概述 436 ?' R# J: B6 X1 g, l& T
3.2 快速分配 466 r1 X J4 `5 J: [9 a
3.3 慢速分配 56
1 z+ }! @2 O# ^7 U E3.3.1 大对象分配 58' ?8 a* P: Y& C f3 s3 ]/ e
3.3.2 最后的分配尝试 60
, a W% N2 [ F3 D; u1 y3.4 G1垃圾回收的时机 61
9 E8 S( w& @( b6 ?( q3.4.1 分配时发生回收 61( W, f8 u* a7 r% u2 N7 R* j; u
3.4.2 外部调用的回收 61
4 s! w; k5 [" K: Q. ~+ E3.5 参数介绍和调优 62
- Z! o4 U9 G" |. F" z第4章 G1的Ref?ine线程 64
) F6 V* h. @3 i6 A) s4.1 记忆集 64
) S% _3 Q+ l' H& n3 ?8 m( Q4.2 Ref?ine线程的功能及原理 72& H% ~; |2 X+ Z, Z+ t; \
4.2.1 抽样线程 72+ t; v/ O `' N
4.2.2 管理RSet 744 J1 |- G7 ~9 H5 R4 V( \' k8 F
4.2.3 Mutator处理DCQ 781 l( _" R9 l# W& M, s# Z
4.2.4 Ref?ine线程的工作原理 78
; B, I6 A; A* P+ ~# {. }6 _4.3 Ref?inement Zone 85
5 Y" g" l7 ^2 u4.4 RSet涉及的写屏障 863 m: m. b: w' H# G- |
4.5 日志解读 87
, m3 s3 @3 [- q8 }3 a4.6 参数介绍和调优 90" Y. e3 ?: R* ~! w; @& Q
第5章 新生代回收 93# ]) X" }" \( Y7 K
5.1 YGC算法概述 93& ^2 o% ~1 M7 V
5.2 YGC代码分析 96, X: T m, v* h0 T
5.2.1 并行任务 96$ i9 f6 W+ ?) p4 d% g$ B& _5 k
5.2.2 其他处理 115
4 w" `" R1 O# I& G0 _ n' @5.3 YGC算法演示 116
8 t9 x, T. s8 G; {: l! ^* {& J4 i" r1 B5.3.1 选择CSet 117$ A7 x: `% J% n+ J- Q
5.3.2 根处理 117) `/ j( T' t: ~3 i1 j
5.3.3 RSet处理 118
* Q# |6 B+ [+ d" S5.3.4 复制 1191 r; c/ M# I/ U7 i; l9 U
5.3.5 Redirty 120
& @+ s- s+ @- q& _5.3.6 释放空间 120: P) j/ l4 d/ V9 T' Z+ W
5.4 日志解读 121
( I/ D4 C( g J$ j$ p/ @5.4.1 YGC日志 121/ B6 h! O# ~ P1 O" j- }( M5 f
5.4.2 大对象日志分析 125+ f4 }+ v7 [5 r" s
5.4.3 对象年龄日志分析 125
u5 q% M8 r, E" V5.5 参数介绍和调优 126/ f7 R5 ^. w* X! G e2 ]$ h( ^" {
第6章 混合回收 129
1 h( y' I# g: W4 t6.1 并发标记算法详解 130* C& R! S4 x- r! p) r+ }
6.2 并发标记算法的难点 133
, s1 L3 A0 w9 N+ W1 F6.2.1 三色标记法 133
$ @0 I, A) k5 O3 T6.2.2 难点示意图 133
5 Z( N) _: D0 c( J0 w6.2.3 再谈写屏障 135! [3 W: I) @/ T9 J3 s- I" @* v
6.3 G1中混合回收的步骤 1410 Z9 n, g- D; m; b+ z& k1 i3 \2 a
6.4 混合回收中并发标记处理的线程 145* Q7 L o) y# J1 {1 V0 @/ d: i
6.4.1 并发标记线程启动的时机 147
2 s" I( `9 c6 ~, w5 q: M) k6.4.2 根扫描子阶段 148; S& ]. d$ C2 ]0 r
6.4.3 并发标记子阶段 152
1 H8 t- V1 C' G3 h+ q+ C6.4.4 再标记子阶段 159' q9 X, _5 s* _) ?: A7 ]. ~1 G& k) Z' n
6.4.5 清理子阶段 160
+ ~ R" z+ h. f6 [, ?6.4.6 启动混合收集 1672 \6 |1 S4 I2 {+ q# u
6.5 并发标记算法演示 1701 D: G+ {4 q* u6 E/ v9 a1 l% G- R1 r
6.5.1 初始标记子阶段 171
# w( d* i1 @9 }9 k3 E4 D6.5.2 根扫描子阶段 171* h( y+ U2 H }9 p e
6.5.3 并发标记子阶段 171
1 ~+ e0 \' `% ^, T# {: l9 l6.5.4 再标记子阶段 172
# c6 s* ?. u" Z6 v) R d9 J6.5.5 清理子阶段 173: z% H) K6 R$ v
6.6 GC活动图 174
K9 F* M! u, I' }# Y) }% k6.7 日志解读 174
* o6 b7 w5 t' D# E6.8 参数优化 178
7 V+ ^* q9 S# W' f4 j第7章 Full GC 1817 s1 q" u/ U. \) d4 \
7.1 Evac失败 1811 p' H1 K* Q" L, a' K; t
7.2 串行FGC 187# L! {, p, t! M6 U% w
7.2.1 标记活跃对象 188
B7 l! z% [( }+ I" p. u7 S7.2.2 计算对象的新地址 190
: t- t7 u# W4 A4 \1 L) c% [7.2.3 更新引用对象的地址 190" g6 `8 E. l0 j1 z* ~2 [
7.2.4 移动对象完成压缩 193
! z2 [8 r/ f# ~4 }7 n7 c7.2.5 后处理 194: p$ V0 A9 M! j6 a
7.3 并行FGC 196( F \- J8 ], T5 B/ g8 y
7.3.1 并行标记活跃对象 197" j* N, a% w& I; V) k- ? X
7.3.2 计算对象的新地址 198* O( _" i( A2 Y/ g Q" a
7.3.3 更新引用对象的地址 2007 `1 N9 Y9 s* s) |) f0 H
7.3.4 移动对象完成压缩 200! |2 N' B3 M7 |
7.3.5 后处理 201
& ?5 U! N: _4 S) H( H2 Z7.4 日志解读 201
' x& T3 i Z# j4 f$ p5 C7.5 参数介绍和调优 202
2 c) x. t; P' N# Y$ g0 c, x& x第8章 G1中的引用处理 203
+ k( g# @$ ^9 S/ g3 L5 B8 q8.1 引用概述 203# m7 |5 V v, e. }
8.2 可回收对象发现 207
% H0 A% G5 o+ O3 x8 ^5 Z8 W8.3 在GC时的处理发现列表 210* e5 E* ?+ w2 _5 G
8.4 重新激活可达的引用 2142 N. w& g% u! R: f/ M$ ^' w
8.5 日志解读 215- c+ K# h: p" g/ W( R5 R
8.6 参数介绍和调优 215" _7 `5 r. O9 G
第9章 G1的新特性:字符串去重 217
0 Y! c8 P" x$ {. f. u9.1 字符串去重概述 217
9 p9 e( |4 \9 f( d2 r- B& {9.2 日志解读 220
! A& A$ [9 U' z7 e* ~8 w5 }8 x9.3 参数介绍和调优 222
7 X6 F6 e' f% H* n: @/ q* x9.4 字符串去重和String.intern的区别 222
4 V- } H5 b4 Y0 F2 B5 o# O, I$ p9.5 String.intern中的实现 223
' ]5 u1 n: ~$ y/ U h ~6 L' d第10章 线程中的安全点 226
- \" M) V) w( k/ p7 ~10.1 安全点的基本概念 226
2 Y7 X4 F& c: a H" k8 g10.2 G1并发线程进入安全点 227) f, w+ _% j4 k+ W0 q1 B5 N) {
10.3 解释线程进入安全点 230
) J! v' H9 J3 L1 {10.4 编译线程进入安全点 230/ y7 X0 ?9 I' _1 f/ k5 K
10.5 正在执行本地代码的线程进入安全点 2338 {! O' S5 H0 T9 |2 ?* K: H" a
10.6 安全点小结 2368 S& j2 G6 X2 D
10.7 日志分析 236# c2 l' D0 q8 A
10.8 参数介绍和调优 238
% y9 S( T+ V0 d* x' j6 T第11章 垃圾回收器的选择 2415 S: B& ~0 a) ~ j
11.1 如何衡量垃圾回收器 241! O8 O5 H* h9 e: a6 I
11.2 G1调优的方向 243$ w9 i, q0 ~' p( U
第12章 新一代垃圾回收器 247
, p: c! d6 F$ N. a' n- y, Z12.1 Shenandoah 247
1 W4 T. @1 W; N( N2 ?12.2 ZGC 258 javazx.com
& E" J( A; V* o# L1 _8 s. J- `附录A 编译调试JVM 262
/ [$ Q* g6 e, h* L4 a附录B 本地内存跟踪 2725 Z; m+ G. i+ ~! h
附录C 阅读JVM需要了解的C 知识 276
) U' A3 m# m3 N6 r$ PJava资料百度网盘下载地址链接(百度云):JVM G1源码分析和调优.pdf【密码回帖可见】4 S! G1 g# d4 V( t/ G6 n5 W. ]
/ V4 d, m: r3 J0 G. O f
4 I5 S# W1 [ g. B7 o( P- V
" I/ Z9 s N5 g2 \
9 A' [' S' X' a% F" Y4 [
|
|