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

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

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

定 價:¥129.00

作 者: 彭成寒 著
出版社: 機械工業(yè)出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787111708773 出版時間: 2022-08-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字數(shù):  

內容簡介

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

作者簡介

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

圖書目錄

【第一部分】 Java虛擬機和垃圾回收基礎知識

第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 從源代碼到目標代碼5
1.2.2 操作系統(tǒng)如何執(zhí)行目標代碼7
1.3 從C 代碼的執(zhí)行過程看編譯器支持面向對象語言9
1.3.1 封裝支持10
1.3.2 繼承支持11
1.3.3 多態(tài)支持12
1.4 Java代碼執(zhí)行過程簡介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 內存管理26
1.6 線程管理27
1.7 擴展閱讀:JIT概述27

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

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

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

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

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

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

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

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

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

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

第10章 Parallel GC參數(shù)294
10.1 生產參數(shù)294
10.1.1 并行壓縮相關參數(shù)294
10.1.2 并行復制相關參數(shù)296
10.2 重要參數(shù)小結296

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

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

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

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

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

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

本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.autoforsalebyowners.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號