深入解析Java虚拟机HotSpot

深入解析Java虚拟机HotSpot
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2020-12
版次: 1
ISBN: 9787111670315
定价: 79.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 268页
23人买过
  • 内容介绍 
    很多JVM的底层技术细节你是否只了解表面? 
    面对JVM Crash或性能调优方面的问题时你是否会束手无策? 
    面对上层Java应用发生的偏离预期的行为是否会不知所措? 
    …… 
    这本书以源码分析为基础,从运行时、垃圾回收器、即时编译器3个维度全面、深入解析HotSpot VM的底层实现和工作机制,同时与上层的Java语言和库结合,指导读者解决JVM开发、JVM调优和JVM排错方面遇到的各种问题。 
    广度与深度兼顾:广度上涵盖Graal VM、CDS、Instrumentation、编译重放、非标准字节码、RTM锁、JIT调试工具、EpsilonGC/ShenandoahGC/ZGC、G1字符串去重等重要知识点;深度上深入解析了C1、C2、G1GC、ObjectMonitor、Mutex、模板解释器等的底层实现。 
    全书共 11 章,参考 OpenJDK 社区的划分方式来组织内容,分为运行时、即时编译器、垃圾回收器三个部分。 
    部分(第1~6章) 运行时 
    首先,从Java生态系统的角度,简单介绍了JDK、JVM、JEP、HotSpot VM、Graal VM,引导读者快速进入Java虚拟机的世界;然后从源码的角度深入解析了HotSpot VM的类可用机制、对象和类、运行时、模板解释器和并发设施。 
    第二部分(第7~9章) 即时编译器 
    首先重点介绍了即时编译器技术、编译理论、编译器调试方法等编译器的基础知识;然后详细讲解了C1和C2两个即时编译器的实现原理、工作机制和优化方法。 
    第三部分(第10~11章) 垃圾回收器 
    首先全面介绍了Epsilon GC、Serial GC、Parallel GC、CMS GC、G1 GC、Shenandoah GC、ZGC等各种垃圾回收器,然后重点剖析了G1 GC。 作者介绍.杨易.Java开发工程师,就职于阿里云基础设施部。.热衷于研究编程语言的设计与实现,对Java语言的设计与实现有非常深入的研究,尤其是Java的虚拟机HotSpot VM,在JVM的开发、调优和排错方面积累了丰富的经验。此外,在编译器领域也有较深厚的积累。.有着自由软件精神的开发者,是GitHub中国区followers数量排名前100的开源项目维护者。喜欢各种新鲜技术和新鲜事物,对服务端编程、逆向安全略知一二。 前  言第1章 Java大观园 11.1 OpenJDK 11.2 JEP 21.3 Java虚拟机 41.4 HotSpot VM 51.4.1 源码模块 71.4.2 构建和调试 71.4.3 回归测试 121.5 Graal VM 141.6 本章小结 16第2章 类可用机制 172.1 类的加载 172.1.1 字节码 172.1.2 类加载器 192.1.3 文件解析 212.2 类的链接 232.2.1 字节码验证 242.2.2 字节码重写 242.2.3 方法链接 262.3 类的初始化 322.4 类的重定义 352.5 本章小结 36第3章 对象和类 383.1 对象与类 383.2 对象 393.2.1 创建对象 393.2.2 对象头 413.2.3 对象哈希值 433.3 类 443.3.1 字段遍历 453.3.2 虚表 463.4 本章小结 48第4章 运行时 494.1 线程创生纪 494.1.1 容器化支持 514.1.2 Java线程 524.1.3 虚拟机线程 544.1.4 编译器线程 574.1.5 服务线程 584.1.6 计时器线程 584.2 Java线程 584.2.1 线程启动 604.2.2 线程停止 614.2.3 睡眠与中断 634.3 栈帧 664.4 Java/JVM沟通 684.4.1 JNI 694.4.2 JavaCalls 724.5 Unsafe类 744.5.1 堆外内存 754.5.2 内存屏障 754.5.3 阻塞和唤醒 764.5.4 对象数据修改 764.6 本章小结 77第5章 模板解释器 785.1 解释器体系 785.1.1 C++解释器行为 785.1.2 模板解释器行为 795.2 机器代码片段 815.3 CodeCache 825.4 指令缓存刷新 845.5 解释器生成 865.5.1 普通方法入口 865.5.2 方法加锁 895.5.3 本地方法入口 905.5.4 标准字节码 915.5.5 非标准字节码 1065.6 本章小结 107第6章 并发设施 1086.1 指令重排序 1086.1.1 编译器重排序 1096.1.2 处理器重排序 1106.2 内存模型 1126.2.1 happens-before内存模型 1136.2.2 Java内存模型 1146.3 基础设施 1166.3.1 原子操作 1166.3.2 ParkEvent 1166.3.3 Parker 1186.3.4 Monitor 1206.4 锁优化 1266.4.1 偏向锁 1276.4.2 基本对象锁 1286.4.3 重量级锁 1286.4.4 RTM锁 1316.5 本章小结 132第7章 编译概述 1337.1 编译器简介 1337.1.1 运行时代码生成 1347.1.2 JIT编译器 1357.1.3 AOT编译器 1367.1.4 JVMCI JIT编译器 1367.2 即时编译技术 1377.2.1 分层编译 1377.2.2 栈上替换 1387.2.3 退优化 1397.3 编译理论基础 1397.3.1 中间表示 1397.3.2 基本块与控制流图 1407.3.3 静态单赋值 1427.3.4 规范化 1427.3.5 值编号 1437.3.6 自顶向下重写系统 1447.3.7 循环不变代码外提概述 1447.4 调试方法 1457.4.1 编译日志 1457.4.2 编译神谕 1467.4.3 可视化工具 1467.5 本章小结 149第8章 C1编译器 1508.1 编译流程 1508.1.1 进入C1 1508.1.2 高级中间表示 1528.1.3 低级中间表示 1538.2 从字节码到HIR 1558.2.1 识别基本块 1558.2.2 抽象解释 1568.3 HIR代码优化 1588.3.1 规范化 1588.3.2 内联 1598.3.3 基本块优化 1608.3.4 值编号 1608.3.5 数组范围检查 1628.3.6 循环不变代码外提 1628.4 从HIR到LIR 1648.4.1 return生成 1658.4.2 new生成 1658.4.3 goto生成 1668.4.4 线性扫描寄存器分配 1678.5 本章小结 171第9章 C2编译器 1729.1 编译流程 1729.1.1 进入C2 1729.1.2 理想图 1749.1.3 理想图流程概述 1809.1.4 C2代码优化 1839.1.5 代码生成流程 1859.1.6 设置机器代码 1869.2 构造理想图 1879.2.1 构造示例 1879.2.2 Identity、Ideal、GVN 1919.3 机器无关优化 1939.3.1 IGVN 1939.3.2 逃逸分析 1949.3.3 向量化 1979.4 代码生成 1999.4.1 指令选择 1999.4.2 图着色寄存器分配 2009.5 本章小结 203第10章 垃圾回收 20410.1 垃圾回收基础概述 20410.1.1 GC Root 20510.1.2 安全点 20610.1.3 线程局部握手 20810.1.4 GC屏障 20910.2 Epsilon GC 20910.2.1 源码结构 20910.2.2 EpsilonHeap 21010.2.3 对象分配 21110.2.4 回收垃圾 21210.3 Serial GC 21210.3.1 弱分代假说
  • 内容简介:
    内容介绍 
    很多JVM的底层技术细节你是否只了解表面? 
    面对JVM Crash或性能调优方面的问题时你是否会束手无策? 
    面对上层Java应用发生的偏离预期的行为是否会不知所措? 
    …… 
    这本书以源码分析为基础,从运行时、垃圾回收器、即时编译器3个维度全面、深入解析HotSpot VM的底层实现和工作机制,同时与上层的Java语言和库结合,指导读者解决JVM开发、JVM调优和JVM排错方面遇到的各种问题。 
    广度与深度兼顾:广度上涵盖Graal VM、CDS、Instrumentation、编译重放、非标准字节码、RTM锁、JIT调试工具、EpsilonGC/ShenandoahGC/ZGC、G1字符串去重等重要知识点;深度上深入解析了C1、C2、G1GC、ObjectMonitor、Mutex、模板解释器等的底层实现。 
    全书共 11 章,参考 OpenJDK 社区的划分方式来组织内容,分为运行时、即时编译器、垃圾回收器三个部分。 
    部分(第1~6章) 运行时 
    首先,从Java生态系统的角度,简单介绍了JDK、JVM、JEP、HotSpot VM、Graal VM,引导读者快速进入Java虚拟机的世界;然后从源码的角度深入解析了HotSpot VM的类可用机制、对象和类、运行时、模板解释器和并发设施。 
    第二部分(第7~9章) 即时编译器 
    首先重点介绍了即时编译器技术、编译理论、编译器调试方法等编译器的基础知识;然后详细讲解了C1和C2两个即时编译器的实现原理、工作机制和优化方法。 
    第三部分(第10~11章) 垃圾回收器 
    首先全面介绍了Epsilon GC、Serial GC、Parallel GC、CMS GC、G1 GC、Shenandoah GC、ZGC等各种垃圾回收器,然后重点剖析了G1 GC。
  • 作者简介:
    作者介绍.杨易.Java开发工程师,就职于阿里云基础设施部。.热衷于研究编程语言的设计与实现,对Java语言的设计与实现有非常深入的研究,尤其是Java的虚拟机HotSpot VM,在JVM的开发、调优和排错方面积累了丰富的经验。此外,在编译器领域也有较深厚的积累。.有着自由软件精神的开发者,是GitHub中国区followers数量排名前100的开源项目维护者。喜欢各种新鲜技术和新鲜事物,对服务端编程、逆向安全略知一二。
  • 目录:
    前  言第1章 Java大观园 11.1 OpenJDK 11.2 JEP 21.3 Java虚拟机 41.4 HotSpot VM 51.4.1 源码模块 71.4.2 构建和调试 71.4.3 回归测试 121.5 Graal VM 141.6 本章小结 16第2章 类可用机制 172.1 类的加载 172.1.1 字节码 172.1.2 类加载器 192.1.3 文件解析 212.2 类的链接 232.2.1 字节码验证 242.2.2 字节码重写 242.2.3 方法链接 262.3 类的初始化 322.4 类的重定义 352.5 本章小结 36第3章 对象和类 383.1 对象与类 383.2 对象 393.2.1 创建对象 393.2.2 对象头 413.2.3 对象哈希值 433.3 类 443.3.1 字段遍历 453.3.2 虚表 463.4 本章小结 48第4章 运行时 494.1 线程创生纪 494.1.1 容器化支持 514.1.2 Java线程 524.1.3 虚拟机线程 544.1.4 编译器线程 574.1.5 服务线程 584.1.6 计时器线程 584.2 Java线程 584.2.1 线程启动 604.2.2 线程停止 614.2.3 睡眠与中断 634.3 栈帧 664.4 Java/JVM沟通 684.4.1 JNI 694.4.2 JavaCalls 724.5 Unsafe类 744.5.1 堆外内存 754.5.2 内存屏障 754.5.3 阻塞和唤醒 764.5.4 对象数据修改 764.6 本章小结 77第5章 模板解释器 785.1 解释器体系 785.1.1 C++解释器行为 785.1.2 模板解释器行为 795.2 机器代码片段 815.3 CodeCache 825.4 指令缓存刷新 845.5 解释器生成 865.5.1 普通方法入口 865.5.2 方法加锁 895.5.3 本地方法入口 905.5.4 标准字节码 915.5.5 非标准字节码 1065.6 本章小结 107第6章 并发设施 1086.1 指令重排序 1086.1.1 编译器重排序 1096.1.2 处理器重排序 1106.2 内存模型 1126.2.1 happens-before内存模型 1136.2.2 Java内存模型 1146.3 基础设施 1166.3.1 原子操作 1166.3.2 ParkEvent 1166.3.3 Parker 1186.3.4 Monitor 1206.4 锁优化 1266.4.1 偏向锁 1276.4.2 基本对象锁 1286.4.3 重量级锁 1286.4.4 RTM锁 1316.5 本章小结 132第7章 编译概述 1337.1 编译器简介 1337.1.1 运行时代码生成 1347.1.2 JIT编译器 1357.1.3 AOT编译器 1367.1.4 JVMCI JIT编译器 1367.2 即时编译技术 1377.2.1 分层编译 1377.2.2 栈上替换 1387.2.3 退优化 1397.3 编译理论基础 1397.3.1 中间表示 1397.3.2 基本块与控制流图 1407.3.3 静态单赋值 1427.3.4 规范化 1427.3.5 值编号 1437.3.6 自顶向下重写系统 1447.3.7 循环不变代码外提概述 1447.4 调试方法 1457.4.1 编译日志 1457.4.2 编译神谕 1467.4.3 可视化工具 1467.5 本章小结 149第8章 C1编译器 1508.1 编译流程 1508.1.1 进入C1 1508.1.2 高级中间表示 1528.1.3 低级中间表示 1538.2 从字节码到HIR 1558.2.1 识别基本块 1558.2.2 抽象解释 1568.3 HIR代码优化 1588.3.1 规范化 1588.3.2 内联 1598.3.3 基本块优化 1608.3.4 值编号 1608.3.5 数组范围检查 1628.3.6 循环不变代码外提 1628.4 从HIR到LIR 1648.4.1 return生成 1658.4.2 new生成 1658.4.3 goto生成 1668.4.4 线性扫描寄存器分配 1678.5 本章小结 171第9章 C2编译器 1729.1 编译流程 1729.1.1 进入C2 1729.1.2 理想图 1749.1.3 理想图流程概述 1809.1.4 C2代码优化 1839.1.5 代码生成流程 1859.1.6 设置机器代码 1869.2 构造理想图 1879.2.1 构造示例 1879.2.2 Identity、Ideal、GVN 1919.3 机器无关优化 1939.3.1 IGVN 1939.3.2 逃逸分析 1949.3.3 向量化 1979.4 代码生成 1999.4.1 指令选择 1999.4.2 图着色寄存器分配 2009.5 本章小结 203第10章 垃圾回收 20410.1 垃圾回收基础概述 20410.1.1 GC Root 20510.1.2 安全点 20610.1.3 线程局部握手 20810.1.4 GC屏障 20910.2 Epsilon GC 20910.2.1 源码结构 20910.2.2 EpsilonHeap 21010.2.3 对象分配 21110.2.4 回收垃圾 21210.3 Serial GC 21210.3.1 弱分代假说
查看详情
12
相关图书 / 更多
深入解析Java虚拟机HotSpot
深入浅出全链路压测
吴骏龙
深入解析Java虚拟机HotSpot
深入解析Windows操作系统 (第7版)(卷2)
(美)安德里亚·阿列维(Andrea Allievi)
深入解析Java虚拟机HotSpot
深入理解移动互联网
吴功宜 吴英 编著
深入解析Java虚拟机HotSpot
深入实施“四个育人”,彰显本科人才培养特色——云南大学本科教育改革与创新优秀论文集
主编唐旭光
深入解析Java虚拟机HotSpot
深入浅出存储引擎 文小飞
文小飞
深入解析Java虚拟机HotSpot
深入浅出C语言程序设计(第3版·微课版)
李俊·c;强振平;荣剑;张晴晖;赵毅力;钟丽辉
深入解析Java虚拟机HotSpot
深入理解物联网 吴功宜 吴英
吴功宜 吴英
深入解析Java虚拟机HotSpot
深入学习习近平关于科技创新的重要论述
科学技术部编写组 著
深入解析Java虚拟机HotSpot
深入浅出Spring Boot 3.x
杨开振
深入解析Java虚拟机HotSpot
深入浅出数字经济
郭全中
深入解析Java虚拟机HotSpot
深入地心 少儿科普 新华正版
英国尤斯伯恩出版公司
深入解析Java虚拟机HotSpot
深入理解FFmpeg
刘歧 赵军 杜金房 赵文杰 宋韶颍