深入Java虛擬機 JVM G1GC的算法與實現 ( 簡體 字) |
作者:[日]中村成洋 | 類別:1. -> 程式設計 -> JAVA -> Java |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 53861 詢問書籍請說出此書號!【缺書】 NT售價: 295 元 |
出版日:1/1/2021 |
頁數:222 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787115554529 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:本書深入Java虛擬機底層原理,對JVM內存管理中的垃圾回收算法G1GC進行了詳細解讀。全書分為“算法篇”和“實現篇”兩大部分:前一部分主要介紹G1GC的算法原理,內容包括G1GC的并發標記、轉移功能、軟實時性的實現和分代G1GC模式;后一部分聚焦算法篇中沒有詳細講解的實現部分,基于HotSpotVM源碼,講解對象管理功能、內存分配器的機制、線程管理方法和G1GC的具體實現。 本書以圖配文,通俗易懂,既系統介紹了G1GC的基礎算法,又貼近現實,剖析了實用JVM中的G1GC實現,同時還包含了作者對G1GC的研究成果和獨到見解,是深入理解JVM和G1GC機制的佳作。 |
目錄:算法篇 第 1章 G1GC是什么 1.1 G1GC和實時性 2 1.2 堆結構 5 1.3 執行過程 5 1.4 并發標記和轉移 7 第 2章 并發標記 2.1 什么是并發標記 8 2.2 標記位圖 9 2.3 執行步驟 10 2.4 步驟?——初始標記階段 10 2.5 步驟?——并發標記階段 12 2.6 步驟?——最終標記階段 18 2.7 步驟?——存活對象計數 19 2.8 步驟?——收尾工作 21 2.9 總結 22 第3章 轉移 3.1 什么是轉移 25 3.2 轉移專用記憶集合 26 3.3 轉移專用寫屏障 28 3.4 轉移專用記憶集合維護線程 31 3.5 熱卡片 32 3.6 執行步驟 32 3.7 步驟?——選擇回收集合 33 3.8 步驟?——根轉移 34 3.9 步驟?——轉移 39 3.10 標記信息的作用 39 3.11 總結 40 第4章 軟實時性 4.1 用戶的需求 41 4.2 預測轉移時間 42 4.3 預測可信度 43 4.4 GC暫停處理的調度 44 4.5 并發標記中的暫停處理 46 第5章 分代G1GC模式 5.1 不同點 47 5.2 新生代區域 48 5.3 分代對象轉移 49 5.4 執行過程簡述 49 5.5 分代選擇回收集合 51 5.6 設置最大新生代區域數 51 5.7 GC的切換 52 5.8 GC執行的時機 52 第6章 算法篇總結 6.1 關系圖 53 6.2 優點 54 6.3 缺點 54 6.4 結束語 55 實現篇 第7章 準備工作 7.1 什么是HotSpotVM 58 7.2 什么是OpenJDK 58 7.3 獲取源碼 59 7.4 代碼結構 60 7.5 兩個特殊類 61 7.6 適用于各種操作系統的接口 63 第8章 對象管理功能 8.1 對象管理功能的接口 64 8.2 對象管理功能的全貌 65 8.3 CollectedHeap類 66 8.4 CollectorPolicy類 67 8.5 各個GC類 68 第9章 堆結構 9.1 VM堆 70 9.2 G1GC堆 72 9.3 常駐空間 75 第 10章 分配器 10.1 內存分配的流程 76 10.2 VM堆的申請 77 10.3 VM堆的分配 79 10.4 對象的分配 86 10.5 TLAB 90 第 11章 對象結構 11.1 oopDesc類 92 11.2 klassOopDesc類 93 11.3 Klass類 94 11.4 類之間的關系 95 11.5 不要在oopDesc類中定義虛函數 96 11.6 對象頭 97 第 12章 HotSpotVM的線程管理 12.1 線程操作的抽象化 103 12.2 Thread類 103 12.3 線程的生命周期 104 12.4 Windows線程的創建 107 12.5 Windows線程的處理開始 110 12.6 Linux線程的創建 113 12.7 開始Linux線程的處理 117 第 13章 線程的互斥處理 13.1 什么是互斥處理 119 13.2 互斥量 119 13.3 監視器 120 13.4 監視器的實現 122 13.5 Monitor類 127 13.6 Mutex類 129 13.7 MutexLocker類 130 第 14章 GC線程(并行篇) 14.1 并行執行的流程 132 14.2 AbstractWorkGang類 136 14.3 AbstractGangTask類 137 14.4 GangWorker類 137 14.5 并行GC的執行示例 138 第 15章 GC線程(并發篇) 15.1 ConcurrentGCThread類 146 15.2 SuspendibleThreadSet類 147 15.3 安全點 150 15.4 VM線程 152 第 16章 并發標記 16.1 并發標記的全貌 155 16.2 步驟?——初始標記階段 160 16.3 步驟?——并發標記階段 168 16.4 步驟?——最終標記階段 170 16.5 步驟?——存活對象計數 172 16.6 步驟?——收尾工作 172 第 17章 轉移 17.1 轉移的全貌 174 17.2 步驟?——選擇回收集合 178 17.3 步驟?——根轉移 181 17.4 步驟?——轉移 185 第 18章 預測與調度 18.1 根據歷史記錄進行預測 187 18.2 并發標記的調度 194 18.3 轉移的調度 195 第 19章 準確式GC的實現 19.1 棧圖 197 19.2 句柄區域與句柄標記 209 第 20章 寫屏障的性能開銷 20.1 運行時切換GC算法 212 20.2 解釋器的寫屏障 214 20.3 JIT編譯器的寫屏障 216 后記 220 參考文獻 223 |
序: |