幫助中心 | 我的帳號 | 關於我們

深入探索JVM垃圾回收(ARM伺服器垃圾回收的挑戰和優化)/Java核心技術系列

  • 作者:彭成寒|責編:趙亮宇
  • 出版社:機械工業
  • ISBN:9787111708773
  • 出版日期:2022/08/01
  • 裝幀:平裝
  • 頁數:371
人民幣:RMB 129 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書介紹JVM和垃圾回收基礎知識、垃圾回收原理和實現、JVM垃圾回收的參數、ARM伺服器上的GC優化和調整,涉及部分垃圾回收的理論知識,但更關注工程實踐。希望通過對實踐的分析,讓讀者了解如何實現一款「令人滿意」的垃圾回收器,即滿足業務訴求,在停頓時間、吞吐量、資源消耗、實現複雜度、穩定性等方面進行了折中的垃圾回收器。
    全書共分為四個部分:
    第一部分,介紹虛擬機執行的基礎知識以及垃圾回收的相關知識;
    第二部分,介紹JVM中實現的六種垃圾回收演算法;
    第三部分,介紹JVM提供了哪些參數用於控制垃圾回收的運行;
    第四部分,以鯤鵬920為例介紹ARM伺服器以及在ARM伺服器下如何實現GC才能充分發揮硬體的性能。

作者介紹
彭成寒|責編:趙亮宇
    彭成寒,高級Java工程師,目前主要從事風控系統設計、演算法建模、大數據處理等工作。有超過10年的Java和C++開發經驗。

目錄
前言
第一部分  Java虛擬機和垃圾回收基礎知識
  第1章  Java代碼執行過程介紹
    1.1  代碼執行過程概述
      1.1.1  編譯執行
      1.1.2  解釋執行
      1.1.3  混合執行
    1.2  從C代碼執行過程看編譯器和操作系統協同工作
      1.2.1  從源代碼到目標代碼
      1.2.2  操作系統如何執行目標代碼
    1.3  從C++代碼的執行過程看編譯器支持面向對象語言
      1.3.1  封裝支持
      1.3.2  繼承支持
      1.3.3  多態支持
    1.4  Java代碼執行過程簡介
      1.4.1  Java代碼到位元組碼
      1.4.2  JVM載入位元組碼
      1.4.3  解釋執行
      1.4.4  編譯執行
    1.5  內存管理
    1.6  線程管理
    1.7  擴展閱讀:JIT概述
  第2章  JVM中垃圾回收相關的基本知識
    2.1  GC演算法分類
    2.2  GC涉及的對象表示
    2.3  GC演算法概述
      2.3.1  複製演算法
      2.3.2  標記清除演算法
      2.3.3  標記壓縮演算法
      2.3.4  分代回收
    2.4  GC的根
      2.4.1  強根
      2.4.2  Java引用引入的弱根
      2.4.3  JVM優化實現引入的弱根
      2.4.4  JVM中根的構成
    2.5  安全點
      2.5.1  解釋線程進入安全點
      2.5.2  編譯線程進入安全點
      2.5.3  本地線程進入安全點
      2.5.4  JVM內部併發線程進入安全點
      2.5.5  安全點小結
    2.6  擴展閱讀:垃圾回收器請求內存設計
第二部分  JVM垃圾回收器詳解
  第3章  串列回收
    3.1  分代堆內存管理概述
      3.1.1  堆設計
      3.1.2  分代邊界
      3.1.3  回收設計思路
    3.2  新生代內存管理
      3.2.1  新生代內存分配

      3.2.2  垃圾回收的觸發機制
      3.2.3  適用於單線程的複製回收演算法
      3.2.4  適用於分代的複製回收演算法
      3.2.5  引用集管理
    3.3  老生代內存管理
      3.3.1  堆空間回收的觸發
      3.3.2  堆空間回收演算法過程介紹
      3.3.3  適用於分代的標記壓縮演算法
      3.3.4  標記-壓縮的優化
    3.4  擴展閱讀:不同的複製演算法比較及對程序員的啟迪
  第4章  併發標記清除回收
    4.1  內存管理
    4.2  並行的新生代回收
      4.2.1  一般根集合的並行處理
      4.2.2  老生代到新生代引用的並行處理
      4.2.3  卡表的競爭操作介紹
      4.2.4  並行複製演算法卡表設計
    4.3  併發回收的難點
      4.3.1  三色標記法
      4.3.2  難點示意圖
      4.3.3  讀屏障處理
      4.3.4  寫屏障之增量標記
      4.3.5  寫屏障之SATB標記
    4.4  併發的老生代回收
      4.4.1  內存管理
      4.4.2  標記清除演算法概述
      4.4.3  併發演算法觸發時機
      4.4.4  併發標記清除之初始標記
      4.4.5  併發標記清除之併發標記
      4.4.6  併發標記清除之預清理
      4.4.7  併發標記清除之可終止預清理
      4.4.8  併發標記清除之再標記
      4.4.9  併發標記清除之清除
      4.4.10  併發標記清除之內存空間調整
      4.4.11  併發標記清除之複位
      4.4.12  併發演算法難點
    4.5  Full GC
    4.6  擴展閱讀:標記棧溢出的各種處理方法
      4.6.1  重新標記法
      4.6.2  全局列表法
      4.6.3  逆指針法
    4.7  擴展閱讀:元數據內存管理
      4.7.1  內存管理
      4.7.2  分配
      4.7.3  回收
      4.7.4  元數據管理的優化
  第5章  並行回收
    5.1  內存管理
      5.1.1  內存管理模型
      5.1.2  NUMA支持

      5.1.3  內存分配和GC觸發流程
    5.2  Minor GC
    5.3  Full GC
      5.3.1  演算法概述
      5.3.2  演算法實現與演示
    5.4  擴展閱讀:並行任務的負載均衡機制
      5.4.1  並行任務的竊取
      5.4.2  並行任務的終止
  第6章  垃圾優先
    6.1  內存管理概述
      6.1.1  分代下的分區管理
      6.1.2  新生代大小設計
      6.1.3  回收機制的設計
    6.2  引用集設計
      6.2.1  引用集存儲
      6.2.2  引用集處理流程
      6.2.3  引用集寫入
    6.3  新生代回收和混合回收
      6.3.1  回收過程中引用關係處理
      6.3.2  混合回收導致停頓時間不符合預期的處理方法
      6.3.3  NUMA-Aware支持
      6.3.4  雲場景的支持
      6.3.5  併發標記和Minor GC、Mixed GC的交互
    6.4  併發標記
      6.4.1  SATB演算法介紹
      6.4.2  增量併發標記演算法
    6.5  Full GC
      6.5.1  串列實現演算法
      6.5.2  並行實現演算法
    6.6  擴展閱讀:OpenJ9中的Balanced GC介紹
      6.6.1  內存管理的區別
      6.6.2  大對象設計的區別
      6.6.3  回收的區別
      6.6.4  併發標記的區別
      6.6.5  Full GC與Balanced GC的區別
  第7章  Shenandoah
    7.1  內存模型
      7.1.1  內存分配
      7.1.2  垃圾回收的觸發
    7.2  併發標記設計
    7.3  併發轉移設計
      7.3.1  引用不變性
      7.3.2  目標空間不變性
      7.3.3  源空間不變性
    7.4  垃圾回收實現
      7.4.1  垃圾回收策略
      7.4.2  垃圾回收模式
      7.4.3  正常回收演算法
      7.4.4  優化模式垃圾回收
      7.4.5  垃圾回收的降級

      7.4.6  遍歷回收演算法
      7.4.7  垃圾回收觸發的時機
      7.4.8  其他細節
    7.5  擴展閱讀:OpenJ9中的實時垃圾回收器Metronome介紹
  第8章  ZGC
    8.1  內存管理
      8.1.1  內存管理模型
      8.1.2  高速分配設計
    8.2  回收設計
      8.2.1  演算法概述
      8.2.2  視圖狀態
      8.2.3  讀屏障
      8.2.4  高效的標記和轉移設計
      8.2.5  垃圾回收觸發的時機
    8.3  垃圾回收實現
      8.3.1  回收實現
      8.3.2  多線程高效地標記
      8.3.3  多線程高效地轉移
      8.3.4  標記和重定位合併的優缺點
    8.4  ZGC新特性概覽
      8.4.1  併發類卸載
      8.4.2  併發根掃描
    8.5  擴展閱讀:分配預測模型的理論基礎
第三部分  JVM中垃圾回收相關參數介紹
  第9章  GC通用參數
    9.1  GC生產參數
      9.1.1  GC選擇相關參數
      9.1.2  GC工作線程相關參數
      9.1.3  內存設置相關參數
      9.1.4  停頓時間相關參數
      9.1.5  執行效率相關參數
      9.1.6  大頁和NUMA參數
      9.1.7  GC日誌相關參數
      9.1.8  其他參數
    9.2  GC實驗參數
      9.2.1  GC選擇相關參數
      9.2.2  引用處理相關參數
      9.2.3  GC任務均衡相關參數
    9.3  GC 診斷參數
      9.3.1  GC工作線程相關參數
      9.3.2  GC校驗相關參數
      9.3.3  其他參數
    9.4  可動態調整的參數
    9.5  重要參數小結
  第10章  Parallel GC參數
    10.1  生產參數
      10.1.1  並行壓縮相關參數
      10.1.2  並行複製相關參數
    10.2  重要參數小結
  第11章  CMS參數

    11.1  生產參數
      11.1.1  老生代分配相關參數
      11.1.2  老生代合併相關參數
      11.1.3  空閑列表管理相關參數
      11.1.4  老生代預清理相關參數
      11.1.5  老生代再標記相關參數
      11.1.6  Minor GC相關參數
      11.1.7  老生代GC觸發控制相關參數
      11.1.8  老生代並行/併發控制相關參數
      11.1.9  其他參數
    11.2  診斷參數
      11.2.1  老生代碎片化相關參數
      11.2.2  Minor GC效率相關參數
      11.2.3  其他參數
    11.3  可動態調整的參數
    11.4  重要參數小結
  第12章  G1參數
    12.1  生產參數
      12.1.1  併發標記相關參數
      12.1.2  引用集處理相關參數
      12.1.3  內存設置相關參數
      12.1.4  Minor GC相關參數
      12.1.5  GC觸發控制相關參數
      12.1.6  混合回收相關參數
    12.2  實驗參數
      12.2.1  內存設置相關參數
      12.2.2  Minor GC相關參數
      12.2.3  混合回收相關參數
      12.2.4  其他參數
    12.3  可動態調整的參數
    12.4  診斷參數
    12.5  重要參數小結
  第13章  Shenandoah參數
    13.1  生產參數
      13.1.1  垃圾回收模式相關參數
      13.1.2  垃圾回收策略相關參數
    13.2  實驗參數
      13.2.1  內存設置相關參數
      13.2.2  垃圾回收策略及相關參數
      13.2.3  併發標記相關參數
    13.3  診斷參數
    13.4  重要參數小結
  第14章  ZGC參數
    14.1  生產參數
    14.2  診斷參數
    14.3  重要參數小結
第四部分  ARM伺服器上的GC挑戰和優化
  第15章  泰山伺服器概述
    15.1  ARM架構
      15.1.1  ARM介紹

      15.1.2  ARMv8-A特性
    15.2  鯤鵬處理器
      15.2.1  晶元架構
      15.2.2  內存管理子系統
      15.2.3  流水線技術
      15.2.4  內存一致性
    15.3  泰山伺服器
  第16章  AArch64平台上的GC挑戰和優化
    16.1  內存序
    16.2  眾核架構對性能的影響
    16.3  NUMA對性能的影響
    16.4  其他影響

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032