《新一代垃圾回收器ZGC設計與實現》是一部詳細解剖ZGC的運行原理的著作,由機械工業出版社出版。
基本介紹
- 書名:新一代垃圾回收器ZGC設計與實現
- 作者:彭成寒 著
- ISBN:978-7-111-63365-5
- 頁數:204頁
- 定價:89.00元
- 出版社:機械工業出版社
- 出版時間:2019年8月
- 裝幀:平裝
- 開本:16開
目 錄
前言
第1章 垃圾回收器概述 1
1.1 垃圾回收算法 2
1.2 JVM垃圾回收器 2
1.2.1 串列回收 3
1.2.2 並行回收 4
1.2.3 CMS 4
1.2.4 G1 5
1.2.5 ZGC 15
1.2.6 Shenandoah 19
第2章 ZGC記憶體管理 21
2.1 作業系統地址管理 21
2.2 ZGC記憶體管理 22
2.2.1 多視圖映射 25
2.2.2 ZGC多視圖映射 27
2.2.3 頁面設計 30
2.2.4 對NUMA的支持 31
2.2.5 ZGC中的物理記憶體管理 32
2.2.6 ZGC中的虛擬記憶體管理 34
2.2.7 ZGC記憶體預分配 35
2.3 ZGC對象分配管理 36
2.3.1 對象空間分配 39
2.3.2 頁面分配 42
第3章 ZGC執行緒 48
3.1 執行緒的基本概念 48
3.2 控制執行緒 49
3.2.1 時鐘觸發器 51
3.2.2 訊息觸發 53
3.2.3 VMThread 56
3.3 工作執行緒 59
3.4 垃圾回收觸發的時機 62
第4章 ZGC垃圾回收算法的設計 67
4.1 並發垃圾回收算法 67
4.1.1 並發垃圾回收算法概述 67
4.1.2 ZGC並發算法的設計 68
4.2 並發處理 70
4.2.1 並發處理概述 71
4.2.2 ZGC並發處理算法 73
4.2.3 ZGC並發處理算法演示 75
第5章 ZGC垃圾回收算法的實現 78
5.1 垃圾回收的實現 78
5.1.1 初始標記 78
5.1.2 並發標記 88
5.1.3 再標記和非強根並行標記 94
5.1.4 非強引用並發標記和引用並發處理 98
5.1.5 重置轉移集 105
5.1.6 回收無效的頁面 106
5.1.7 選擇待回收的頁面 106
5.1.8 初始化待轉移集合的轉移表 108
5.1.9 初始轉移 108
5.1.10 並發轉移 110
5.1.11 垃圾回收算法再討論 111
5.2 垃圾回收算法演示 112
第6章 ZGC日誌解讀 120
6.1 Xlog簡介 120
6.2 測試用例設計 123
6.3 ZGC初始化信息 125
6.4 垃圾回收觸發信息 127
6.5 垃圾回收過程中每一步的信息 130
6.6 統計信息 137
6.6.1 垃圾回收器信息 137
6.6.2 競爭信息 137
6.6.3 同步等待信息 139
6.6.4 記憶體信息 140
6.6.5 垃圾回收步驟信息 142
6.6.6 子階段信息 144
6.6.7 執行緒信息 146
第7章 ZGC參數和基準測試 147
7.1 參數簡介 147
7.1.1 ZGC新引入參數 147
7.1.2 GC通用參數 149
7.2 測試評估 150
7.2.1 測試準備 151
7.2.2 測試與測試報告 154
第8章 ZGC的發展與展望 160
8.1 類回收 161
8.2 單代回收 164
8.3 新功能和多平台 165
第9章 JVM編譯調試 166
9.1 下載原始碼 166
9.2 代碼概覽 167
9.3 編譯JVM 168
9.4 調試ZGC 169
9.4.1 啟動GDB 170
9.4.2 對象分配 170
9.4.3 觸發垃圾回收 172
9.4.4 初始標記 172
9.4.5 並發標記 173
9.4.6 初始轉移 174
9.4.7 並發轉移 176
9.4.8 重定位 176
9.5 使用HSDB學習JVM中對象布局 178
9.5.1 C++對象布局原理 178
9.5.2 Java對象布局原理 180
9.5.3 用HSDB分析Java對象布局 180
第10章 Shenandoah簡介 192
10.1 概述 192
10.2 Shenandoah垃圾回收策略 193
10.3 Shenandoah垃圾回收算法 194
10.3.1 正常回收算法 195
10.3.2 遍歷回收算法 197
附錄A Cassandra簡介 200
附錄B YCSB簡介 202