注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)其他編程語(yǔ)言/工具深入探索JVM垃圾回收:ARM服務(wù)器垃圾回收的挑戰(zhàn)和優(yōu)化

深入探索JVM垃圾回收:ARM服務(wù)器垃圾回收的挑戰(zhàn)和優(yōu)化

深入探索JVM垃圾回收:ARM服務(wù)器垃圾回收的挑戰(zhàn)和優(yōu)化

定 價(jià):¥129.00

作 者: 彭成寒 著
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787111708773 出版時(shí)間: 2022-08-01 包裝: 平裝-膠訂
開本: 16開 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書介紹JVM和垃圾回收基礎(chǔ)知識(shí)、垃圾回收原理和實(shí)現(xiàn)、JVM垃圾回收的參數(shù)、ARM服務(wù)器上的GC優(yōu)化和調(diào)整,涉及部分垃圾回收的理論知識(shí),但更關(guān)注工程實(shí)踐。希望通過對(duì)實(shí)踐的分析,讓讀者了解如何實(shí)現(xiàn)一款“令人滿意”的垃圾回收器,即滿足業(yè)務(wù)訴求,在停頓時(shí)間、吞吐量、資源消耗、實(shí)現(xiàn)復(fù)雜度、穩(wěn)定性等方面進(jìn)行了折中的垃圾回收器。 全書共分為四個(gè)部分:第1部分,介紹虛擬機(jī)執(zhí)行的基礎(chǔ)知識(shí)以及垃圾回收的相關(guān)知識(shí);第2部分,介紹JVM中實(shí)現(xiàn)的六種垃圾回收算法;第3部分,介紹JVM提供了哪些參數(shù)用于控制垃圾回收的運(yùn)行;第4部分,以鯤鵬920為例介紹ARM服務(wù)器以及在ARM服務(wù)器下如何實(shí)現(xiàn)GC才能充分發(fā)揮硬件的性能。

作者簡(jiǎn)介

  彭成寒虛擬機(jī)技術(shù)專家,目前主要從事JVM、V8和WebAssembly等虛擬機(jī)的研究和開發(fā)。他有超過15年的工作經(jīng)驗(yàn),從事過應(yīng)用軟件、大數(shù)據(jù)開發(fā)等工作。他是開源社區(qū)OpenEuler技術(shù)委員會(huì)委員,負(fù)責(zé)Compiler SIG;還是畢昇JDK的主要維護(hù)者和貢獻(xiàn)者,著有《JVM G1源碼分析和調(diào)優(yōu)》《新一代垃圾回收器ZGC設(shè)計(jì)與實(shí)現(xiàn)》。

圖書目錄

【第一部分】 Java虛擬機(jī)和垃圾回收基礎(chǔ)知識(shí)

第1章 Java代碼執(zhí)行過程介紹3
1.1 代碼執(zhí)行過程概述3
1.1.1 編譯執(zhí)行4
1.1.2 解釋執(zhí)行4
1.1.3 混合執(zhí)行4
1.2 從C代碼執(zhí)行過程看編譯器和操作系統(tǒng)協(xié)同工作5
1.2.1 從源代碼到目標(biāo)代碼5
1.2.2 操作系統(tǒng)如何執(zhí)行目標(biāo)代碼7
1.3 從C 代碼的執(zhí)行過程看編譯器支持面向?qū)ο笳Z(yǔ)言9
1.3.1 封裝支持10
1.3.2 繼承支持11
1.3.3 多態(tài)支持12
1.4 Java代碼執(zhí)行過程簡(jiǎn)介13
1.4.1 Java代碼到字節(jié)碼15
1.4.2 JVM加載字節(jié)碼16
1.4.3 解釋執(zhí)行17
1.4.4 編譯執(zhí)行22
1.5 內(nèi)存管理26
1.6 線程管理27
1.7 擴(kuò)展閱讀:JIT概述27

第2章 JVM中垃圾回收相關(guān)的基本知識(shí)30
2.1 GC算法分類30
2.2 GC涉及的對(duì)象表示32
2.3 GC算法概述34
2.3.1 復(fù)制算法34
2.3.2 標(biāo)記清除算法36
2.3.3 標(biāo)記壓縮算法37
2.3.4 分代回收38
2.4 GC的根40
2.4.1 強(qiáng)根40
2.4.2 Java引用引入的弱根42
2.4.3 JVM優(yōu)化實(shí)現(xiàn)引入的弱根43
2.4.4 JVM中根的構(gòu)成45
2.5 安全點(diǎn)46
2.5.1 解釋線程進(jìn)入安全點(diǎn)46
2.5.2 編譯線程進(jìn)入安全點(diǎn)47
2.5.3 本地線程進(jìn)入安全點(diǎn)48
2.5.4 JVM內(nèi)部并發(fā)線程進(jìn)入安全點(diǎn)48
2.5.5 安全點(diǎn)小結(jié)49
2.6 擴(kuò)展閱讀:垃圾回收器請(qǐng)求內(nèi)存設(shè)計(jì)50

【第二部分】 JVM垃圾回收器詳解

第3章 串行回收57
3.1 分代堆內(nèi)存管理概述57
3.1.1 堆設(shè)計(jì)58
3.1.2 分代邊界60
3.1.3 回收設(shè)計(jì)思路62
3.2 新生代內(nèi)存管理63
3.2.1 新生代內(nèi)存分配64
3.2.2 垃圾回收的觸發(fā)機(jī)制67
3.2.3 適用于單線程的復(fù)制回收算法69
3.2.4 適用于分代的復(fù)制回收算法73
3.2.5 引用集管理75
3.3 老生代內(nèi)存管理79
3.3.1 堆空間回收的觸發(fā)80
3.3.2 堆空間回收算法過程介紹81
3.3.3 適用于分代的標(biāo)記壓縮算法83
3.3.4 標(biāo)記-壓縮的優(yōu)化86
3.4 擴(kuò)展閱讀:不同的復(fù)制算法比較及對(duì)程序員的啟迪88

第4章 并發(fā)標(biāo)記清除回收92
4.1 內(nèi)存管理92
4.2 并行的新生代回收95
4.2.1 一般根集合的并行處理96
4.2.2 老生代到新生代引用的并行處理97
4.2.3 卡表的競(jìng)爭(zhēng)操作介紹99
4.2.4 并行復(fù)制算法卡表設(shè)計(jì)103
4.3 并發(fā)回收的難點(diǎn)105
4.3.1 三色標(biāo)記法105
4.3.2 難點(diǎn)示意圖105
4.3.3 讀屏障處理107
4.3.4 寫屏障之增量標(biāo)記107
4.3.5 寫屏障之SATB標(biāo)記108
4.4 并發(fā)的老生代回收108
4.4.1 內(nèi)存管理109
4.4.2 標(biāo)記清除算法概述112
4.4.3 并發(fā)算法觸發(fā)時(shí)機(jī)113
4.4.4 并發(fā)標(biāo)記清除之初始標(biāo)記114
4.4.5 并發(fā)標(biāo)記清除之并發(fā)標(biāo)記116
4.4.6 并發(fā)標(biāo)記清除之預(yù)清理118
4.4.7 并發(fā)標(biāo)記清除之可終止預(yù)清理120
4.4.8 并發(fā)標(biāo)記清除之再標(biāo)記123
4.4.9 并發(fā)標(biāo)記清除之清除124
4.4.10 并發(fā)標(biāo)記清除之內(nèi)存空間調(diào)整126
4.4.11 并發(fā)標(biāo)記清除之復(fù)位127
4.4.12 并發(fā)算法難點(diǎn)127
4.5 Full GC131
4.6 擴(kuò)展閱讀:標(biāo)記棧溢出的各種處理方法131
4.6.1 重新標(biāo)記法132
4.6.2 全局列表法132
4.6.3 逆指針法133
4.7 擴(kuò)展閱讀:元數(shù)據(jù)內(nèi)存管理133
4.7.1 內(nèi)存管理133
4.7.2 分配135
4.7.3 回收135
4.7.4 元數(shù)據(jù)管理的優(yōu)化136

第5章 并行回收138
5.1 內(nèi)存管理138
5.1.1 內(nèi)存管理模型140
5.1.2 NUMA支持141
5.1.3 內(nèi)存分配和GC觸發(fā)流程143
5.2 Minor GC144
5.3 Full GC145
5.3.1 算法概述145
5.3.2 算法實(shí)現(xiàn)與演示148
5.4 擴(kuò)展閱讀:并行任務(wù)的負(fù)載均衡機(jī)制151
5.4.1 并行任務(wù)的竊取153
5.4.2 并行任務(wù)的終止156

第6章 垃圾優(yōu)先160
6.1 內(nèi)存管理概述162
6.1.1 分代下的分區(qū)管理163
6.1.2 新生代大小設(shè)計(jì)164
6.1.3 回收機(jī)制的設(shè)計(jì)166
6.2 引用集設(shè)計(jì)169
6.2.1 引用集存儲(chǔ)169
6.2.2 引用集處理流程172
6.2.3 引用集寫入174
6.3 新生代回收和混合回收176
6.3.1 回收過程中引用關(guān)系處理178
6.3.2 混合回收導(dǎo)致停頓時(shí)間不符合預(yù)期的處理方法178
6.3.3 NUMA-Aware支持180
6.3.4 云場(chǎng)景的支持180
6.3.5 并發(fā)標(biāo)記和Minor GC、Mixed GC的交互181
6.4 并發(fā)標(biāo)記183
6.4.1 SATB算法介紹183
6.4.2 增量并發(fā)標(biāo)記算法186
6.5 Full GC188
6.5.1 串行實(shí)現(xiàn)算法188
6.5.2 并行實(shí)現(xiàn)算法189
6.6 擴(kuò)展閱讀:OpenJ9中的Balanced GC介紹190
6.6.1 內(nèi)存管理的區(qū)別191
6.6.2 大對(duì)象設(shè)計(jì)的區(qū)別192
6.6.3 回收的區(qū)別193
6.6.4 并發(fā)標(biāo)記的區(qū)別194
6.6.5 Full GC與Balanced GC的區(qū)別195

第7章 Shenandoah196
7.1 內(nèi)存模型198
7.1.1 內(nèi)存分配198
7.1.2 垃圾回收的觸發(fā)198
7.2 并發(fā)標(biāo)記設(shè)計(jì)200
7.3 并發(fā)轉(zhuǎn)移設(shè)計(jì)201
7.3.1 引用不變性202
7.3.2 目標(biāo)空間不變性203
7.3.3 源空間不變性205
7.4 垃圾回收實(shí)現(xiàn)206
7.4.1 垃圾回收策略206
7.4.2 垃圾回收模式207
7.4.3 正?;厥账惴?08
7.4.4 優(yōu)化模式垃圾回收209
7.4.5 垃圾回收的降級(jí)209
7.4.6 遍歷回收算法210
7.4.7 垃圾回收觸發(fā)的時(shí)機(jī)211
7.4.8 其他細(xì)節(jié)211
7.5 擴(kuò)展閱讀:OpenJ9中的實(shí)時(shí)垃圾回收器Metronome介紹214

第8章 ZGC219
8.1 內(nèi)存管理222
8.1.1 內(nèi)存管理模型222
8.1.2 高速分配設(shè)計(jì)224
8.2 回收設(shè)計(jì)226
8.2.1 算法概述227
8.2.2 視圖狀態(tài)229
8.2.3 讀屏障232
8.2.4 高效的標(biāo)記和轉(zhuǎn)移設(shè)計(jì)234
8.2.5 垃圾回收觸發(fā)的時(shí)機(jī)239
8.3 垃圾回收實(shí)現(xiàn)243
8.3.1 回收實(shí)現(xiàn)243
8.3.2 多線程高效地標(biāo)記244
8.3.3 多線程高效地轉(zhuǎn)移246
8.3.4 標(biāo)記和重定位合并的優(yōu)缺點(diǎn)246
8.4 ZGC新特性概覽247
8.4.1 并發(fā)類卸載248
8.4.2 并發(fā)根掃描249
8.5 擴(kuò)展閱讀:分配預(yù)測(cè)模型的理論基礎(chǔ)251

【第三部分】 JVM中垃圾回收相關(guān)參數(shù)介紹

第9章 GC通用參數(shù)259
9.1 GC生產(chǎn)參數(shù)259
9.1.1 GC選擇相關(guān)參數(shù)259
9.1.2 GC工作線程相關(guān)參數(shù)261
9.1.3 內(nèi)存設(shè)置相關(guān)參數(shù)263
9.1.4 停頓時(shí)間相關(guān)參數(shù)274
9.1.5 執(zhí)行效率相關(guān)參數(shù)275
9.1.6 大頁(yè)和NUMA參數(shù)284
9.1.7 GC日志相關(guān)參數(shù)285
9.1.8 其他參數(shù)285
9.2 GC實(shí)驗(yàn)參數(shù)288
9.2.1 GC選擇相關(guān)參數(shù)288
9.2.2 引用處理相關(guān)參數(shù)288
9.2.3 GC任務(wù)均衡相關(guān)參數(shù)288
9.3 GC 診斷參數(shù)289
9.3.1 GC工作線程相關(guān)參數(shù)289
9.3.2 GC校驗(yàn)相關(guān)參數(shù)290
9.3.3 其他參數(shù)291
9.4 可動(dòng)態(tài)調(diào)整的參數(shù)292
9.5 重要參數(shù)小結(jié)293

第10章 Parallel GC參數(shù)294
10.1 生產(chǎn)參數(shù)294
10.1.1 并行壓縮相關(guān)參數(shù)294
10.1.2 并行復(fù)制相關(guān)參數(shù)296
10.2 重要參數(shù)小結(jié)296

第11章 CMS參數(shù)298
11.1 生產(chǎn)參數(shù)298
11.1.1 老生代分配相關(guān)參數(shù)298
11.1.2 老生代合并相關(guān)參數(shù)300
11.1.3 空閑列表管理相關(guān)參數(shù)300
11.1.4 老生代預(yù)清理相關(guān)參數(shù)303
11.1.5 老生代再標(biāo)記相關(guān)參數(shù)306
11.1.6 Minor GC相關(guān)參數(shù)307
11.1.7 老生代GC觸發(fā)控制相關(guān)參數(shù)308
11.1.8 老生代并行/并發(fā)控制相關(guān)參數(shù)310
11.1.9 其他參數(shù)311
11.2 診斷參數(shù)313
11.2.1 老生代碎片化相關(guān)參數(shù)313
11.2.2 Minor GC效率相關(guān)參數(shù)314
11.2.3 其他參數(shù)314
11.3 可動(dòng)態(tài)調(diào)整的參數(shù)314
11.4 重要參數(shù)小結(jié)315 
 
第12章 G1參數(shù)316
12.1 生產(chǎn)參數(shù)316
12.1.1 并發(fā)標(biāo)記相關(guān)參數(shù)316
12.1.2 引用集處理相關(guān)參數(shù)318
12.1.3 內(nèi)存設(shè)置相關(guān)參數(shù)321
12.1.4 Minor GC相關(guān)參數(shù)321
12.1.5 GC觸發(fā)控制相關(guān)參數(shù)322
12.1.6 混合回收相關(guān)參數(shù)322
12.2 實(shí)驗(yàn)參數(shù)323
12.2.1 內(nèi)存設(shè)置相關(guān)參數(shù)323
12.2.2 Minor GC相關(guān)參數(shù)324
12.2.3 混合回收相關(guān)參數(shù)325
12.2.4 其他參數(shù)325
12.3 可動(dòng)態(tài)調(diào)整的參數(shù)326
12.4 診斷參數(shù)326
12.5 重要參數(shù)小結(jié)327

第13章 Shenandoah參數(shù)328
13.1 生產(chǎn)參數(shù)328
13.1.1 垃圾回收模式相關(guān)參數(shù)328
13.1.2 垃圾回收策略相關(guān)參數(shù)329
13.2 實(shí)驗(yàn)參數(shù)329
13.2.1 內(nèi)存設(shè)置相關(guān)參數(shù)329
13.2.2 垃圾回收策略及相關(guān)參數(shù)330
13.2.3 并發(fā)標(biāo)記相關(guān)參數(shù)335
13.3 診斷參數(shù)336
13.4 重要參數(shù)小結(jié)338

第14章 ZGC參數(shù)339
14.1 生產(chǎn)參數(shù)339
14.2 診斷參數(shù)341
14.3 重要參數(shù)小結(jié)342

【第四部分】 ARM服務(wù)器上的GC挑戰(zhàn)和優(yōu)化

第15章 泰山服務(wù)器概述345
15.1 ARM架構(gòu)346
15.1.1 ARM介紹346
15.1.2 ARMv8-A特性348
15.2 鯤鵬處理器353
15.2.1 芯片架構(gòu)353
15.2.2 內(nèi)存管理子系統(tǒng)355
15.2.3 流水線技術(shù)356
15.2.4 內(nèi)存一致性357
15.3 泰山服務(wù)器358

第16章 AArch64平臺(tái)上的GC挑戰(zhàn)和優(yōu)化363
16.1 內(nèi)存序363
16.2 眾核架構(gòu)對(duì)性能的影響369
16.3 NUMA對(duì)性能的影響370
16.4 其他影響370

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)