作品简介

Java11版本包含一个全新的垃圾收集器ZGC,它由Oracle开发,承诺在数TB的堆上具有非常低的暂停时间。ZGC是2017年Oracle公司贡献给OpenJDK社区的,正式成为OpenJDK的开源项目。ZGC所针对的是这些在未来普遍存在的大容量内存:TB级别的堆容量,具有很低的停顿时间(小于10毫秒),对整体应用性能的影响也很小(对吞吐量的影响低于15%)。ZGC所采用的机制也可以在未来进行扩展,以支持一些令人兴奋的特性,如多层堆(用于热对象的DRAM和用于低频访问对象的NVMe闪存)或压缩堆。本书详细介绍ZGC涉及的基本概念和运行原理,以及调优方法。主要内容共9章,主要内容有:垃圾回收器概述、ZGC内存管理、ZGC线程、ZGC垃圾回收算法的设计、ZGC日志解读、ZGC参数和基准测试、ZGC的编译调试、ZGC特性总结和展望、ZGC的编译调试、Shenandoah简介等。

彭成寒,高级Java工程师,目前主要从事风控系统设计、算法建模、大数据处理等工作,有超过10年的Java和C开发经验。

作品目录

  • 前言
  • 第1章 垃圾回收器概述
  • 1.1 垃圾回收算法
  • 1.2 JVM垃圾回收器
  • 第2章 ZGC内存管理
  • 2.1 操作系统地址管理
  • 2.2 ZGC内存管理
  • 2.3 ZGC对象分配管理
  • 第3章 ZGC线程
  • 3.1 线程的基本概念
  • 3.2 控制线程
  • 3.3 工作线程
  • 3.4 垃圾回收触发的时机
  • 第4章 ZGC垃圾回收算法的设计
  • 4.1 并发垃圾回收算法
  • 4.2 并发处理
  • 第5章 ZGC垃圾回收算法的实现
  • 5.1 垃圾回收的实现
  • 5.2 垃圾回收算法演示
  • 第6章 ZGC日志解读
  • 6.1 Xlog简介
  • 6.2 测试用例设计
  • 6.3 ZGC初始化信息
  • 6.4 垃圾回收触发信息
  • 6.5 垃圾回收过程中每一步的信息
  • 6.6 统计信息
  • 第7章 ZGC参数和基准测试
  • 7.1 参数简介
  • 7.2 测试评估
  • 第8章 ZGC的发展与展望
  • 8.1 类回收
  • 8.2 单代回收
  • 8.3 新功能和多平台
  • 第9章 JVM编译调试
  • 9.1 下载源代码
  • 9.2 代码概览
  • 9.3 编译JVM
  • 9.4 调试ZGC
  • 9.5 使用HSDB学习JVM中对象布局
  • 第10章 Shenandoah简介
  • 10.1 概述
  • 10.2 Shenandoah垃圾回收策略
  • 10.3 Shenandoah垃圾回收算法
  • 附录A Cassandra简介
  • 附录B YCSB简介
展开全部