您好,欢迎来到聚文网。
登录
免费注册
网站首页
|
搜索
热搜:
磁力片
|
漫画
|
购物车
0
我的订单
商品分类
首页
幼儿
文学
社科
教辅
生活
销量榜
深入探索JVM垃圾回收:ARM服务器垃圾回收的挑战和优化
出版社: 机械工业
作者: 彭成寒 著
商品条码: 9787111708773
版次: 1
开本: 16开
页数: 371
出版年份: 2022
印次: 1
定价:
¥129
销售价:
登录后查看价格
¥{{selectedSku?.salePrice}}
库存:
{{selectedSku?.stock}}
库存充足
{{item.title}}:
{{its.name}}
加入购物车
立即购买
加入书单
收藏
精选
¥5.83
世界图书名著昆虫记绿野仙踪木偶奇遇记儿童书籍彩图注音版
¥5.39
正版世界名著文学小说名家名译中学生课外阅读书籍图书批发 70册
¥8.58
简笔画10000例加厚版2-6岁幼儿童涂色本涂鸦本绘画本填色书正版
¥5.83
世界文学名著全49册中小学生青少年课外书籍文学小说批发正版
¥4.95
全优冲刺100分测试卷一二三四五六年级上下册语文数学英语模拟卷
¥8.69
父与子彩图注音完整版小学生图书批发儿童课外阅读书籍正版1册
¥24.2
好玩的洞洞拉拉书0-3岁宝宝早教益智游戏书机关立体翻翻书4册
¥7.15
幼儿认字识字大王3000字幼儿园中班大班学前班宝宝早教启蒙书
¥11.55
用思维导图读懂儿童心理学培养情绪管理与性格培养故事指导书
¥19.8
少年读漫画鬼谷子全6册在漫画中学国学小学生课外阅读书籍正版
¥64
科学真好玩
¥12.7
一年级下4册·读读童谣和儿歌
¥38.4
原生态新生代(传统木版年画的当代传承国际研讨会论文集)
¥11.14
法国经典中篇小说
¥11.32
上海的狐步舞--穆时英(中国现代文学馆馆藏初版本经典)
¥21.56
猫的摇篮(精)
¥30.72
幼儿园特色课程实施方案/幼儿园生命成长启蒙教育课程丛书
¥24.94
旧时风物(精)
¥12.04
三希堂三帖/墨林珍赏
¥6.88
寒山子庞居士诗帖/墨林珍赏
¥6.88
苕溪帖/墨林珍赏
¥6.88
楷书王维诗卷/墨林珍赏
¥9.46
兰亭序/墨林珍赏
¥7.74
祭侄文稿/墨林珍赏
¥7.74
蜀素帖/墨林珍赏
¥12.04
真草千字文/墨林珍赏
¥114.4
进宴仪轨(精)/中国古代舞乐域外图书
¥24.94
舞蹈音乐的基础理论与应用
内容简介
本书介绍JVM和垃圾回收基础知识、垃圾回收原理和实现、JVM垃圾回收的参数、ARM服务器上的GC优化和调整,涉及部分垃圾回收的理论知识,但更关注工程实践。希望通过对实践的分析,让读者了解如何实现一款“令人满意”的垃圾回收器,即满足业务诉求,在停顿时间、吞吐量、资源消耗、实现复杂度、稳定性等方面进行了折中的垃圾回收器。 全书共分为四个部分: 第yi部分,介绍虚拟机执行的基础知识以及垃圾回收的相关知识; 第二部分,介绍JVM中实现的六种垃圾回收算法; 第三部分,介绍JVM提供了哪些参数用于控制垃圾回收的运行; 第四部分,以鲲鹏920为例介绍ARM服务器以及在ARM服务器下如何实现GC才能充分发挥硬件的性能。
作者简介
彭成寒 高级Java工程师,目前主要从事风控系统设计、算法建模、大数据处理等工作,有超过10年的Java和C++开发经验。
目录
前言 第一部分 Java虚拟机和垃圾回收基础知识 第1章 Java代码执行过程介绍3 1.1 代码执行过程概述3 1.1.1 编译执行4 1.1.2 解释执行4 1.1.3 混合执行4 1.2 从C代码执行过程看编译器和操作系统协同工作5 1.2.1 从源代码到目标代码5 1.2.2 操作系统如何执行目标代码7 1.3 从C++代码的执行过程看编译器支持面向对象语言9 1.3.1 封装支持10 1.3.2 继承支持11 1.3.3 多态支持12 1.4 Java代码执行过程简介13 1.4.1 Java代码到字节码15 1.4.2 JVM加载字节码16 1.4.3 解释执行17 1.4.4 编译执行22 1.5 内存管理26 1.6 线程管理27 1.7 扩展阅读:JIT概述27 第2章 JVM中垃圾回收相关的基本知识30 2.1 GC算法分类30 2.2 GC涉及的对象表示32 2.3 GC算法概述34 2.3.1 复制算法34 2.3.2 标记清除算法36 2.3.3 标记压缩算法37 2.3.4 分代回收38 2.4 GC的根40 2.4.1 强根40 2.4.2 Java引用引入的弱根42 2.4.3 JVM优化实现引入的弱根43 2.4.4 JVM中根的构成45 2.5 安全点46 2.5.1 解释线程进入安全点46 2.5.2 编译线程进入安全点47 2.5.3 本地线程进入安全点48 2.5.4 JVM内部并发线程进入安全点48 2.5.5 安全点小结49 2.6 扩展阅读:垃圾回收器请求内存设计50 第二部分 JVM垃圾回收器详解 第3章 串行回收57 3.1 分代堆内存管理概述57 3.1.1 堆设计58 3.1.2 分代边界60 3.1.3 回收设计思路62 3.2 新生代内存管理63 3.2.1 新生代内存分配64 3.2.2 垃圾回收的触发机制67 3.2.3 适用于单线程的复制回收算法69 3.2.4 适用于分代的复制回收算法73 3.2.5 引用集管理75 3.3 老生代内存管理79 3.3.1 堆空间回收的触发80 3.3.2 堆空间回收算法过程介绍81 3.3.3 适用于分代的标记压缩算法83 3.3.4 标记-压缩的优化86 3.4 扩展阅读:不同的复制算法比较及对程序员的启迪88 第4章 并发标记清除回收92 4.1 内存管理92 4.2 并行的新生代回收95 4.2.1 一般根集合的并行处理96 4.2.2 老生代到新生代引用的并行处理97 4.2.3 卡表的竞争操作介绍99 4.2.4 并行复制算法卡表设计103 4.3 并发回收的难点105 4.3.1 三色标记法105 4.3.2 难点示意图105 4.3.3 读屏障处理107 4.3.4 写屏障之增量标记107 4.3.5 写屏障之SATB标记108 4.4 并发的老生代回收108 4.4.1 内存管理109 4.4.2 标记清除算法概述112 4.4.3 并发算法触发时机113 4.4.4 并发标记清除之初始标记114 4.4.5 并发标记清除之并发标记116 4.4.6 并发标记清除之预清理118 4.4.7 并发标记清除之可终止预清理120 4.4.8 并发标记清除之再标记123 4.4.9 并发标记清除之清除124 4.4.10 并发标记清除之内存空间调整126 4.4.11 并发标记清除之复位127 4.4.12 并发算法难点127 4.5 Full GC131 4.6 扩展阅读:标记栈溢出的各种处理方法131 4.6.1 重新标记法132 4.6.2 全局列表法132 4.6.3 逆指针法133 4.7 扩展阅读:元数据内存管理133 4.7.1 内存管理133 4.7.2 分配135 4.7.3 回收135 4.7.4 元数据管理的优化136 第5章 并行回收138 5.1 内存管理138 5.1.1 内存管理模型140 5.1.2 NUMA支持141 5.1.3 内存分配和GC触发流程143 5.2 Minor GC144 5.3 Full GC145 5.3.1 算法概述145 5.3.2 算法实现与演示148 5.4 扩展阅读:并行任务的负载均衡机制151 5.4.1 并行任务的窃取153 5.4.2 并行任务的终止156 第6章 垃圾优先160 6.1 内存管理概述162 6.1.1 分代下的分区管理163 6.1.2 新生代大小设计164 6.1.3 回收机制的设计166 6.2 引用集设计169 6.2.1 引用集存储169 6.2.2 引用集处理流程172 6.2.3 引用集写入174 6.3 新生代回收和混合回收176 6.3.1 回收过程中引用关系处理178 6.3.2 混合回收导致停顿时间不符合预期的处理方法178 6.3.3 NUMA-Aware支持180 6.3.4 云场景的支持180 6.3.5 并发标记和Minor GC、Mixed GC的交互181 6.4 并发标记183 6.4.1 SATB算法介绍183 6.4.2 增量并发标记算法186 6.5 Full GC188 6.5.1 串行实现算法188 6.5.2 并行实现算法189 6.6 扩展阅读:OpenJ9中的Balanced GC介绍190 6.6.1 内存管理的区别191 6.6.2 大对象设计的区别192 6.6.3 回收的区别193 6.6.4 并发标记的区别194 6.6.5 Full GC与Balanced GC的区别195 第7章 Shenandoah196 7.1 内存模型198 7.1.1 内存分配198 7.1.2 垃圾回收的触发198 7.2 并发标记设计200 7.3 并发转移设计201 7.3.1 引用不变性202 7.3.2 目标空间不变性203 7.3.3 源空间不变性205 7.4 垃圾回收实现206 7.4.1 垃圾回收策略206 7.4.2 垃圾回收模式207 7.4.3 正常回收算法208 7.4.4 优化模式垃圾回收209 7.4.5 垃圾回收的降级209 7.4.6 遍历回收算法210 7.4.7 垃圾回收触发的时机211 7.4.8 其他细节211 7.5 扩展阅读:OpenJ9中的实时垃圾回收器Metronome介绍214 第8章 ZGC219 8.1 内存管理222 8.1.1 内存管理模型222 8.1.2 高速分配设计224 8.2 回收设计226 8.2.1 算法概述227 8.2.2 视图状态229 8.2.3 读屏障232 8.2.4 高效的标记和转移设计234 8.2.5 垃圾回收触发的时机239 8.3 垃圾回收实现243 8.3.1 回收实现243 8.3.2 多线程高效地标记244 8.3.3 多线程高效地转移246 8.3.4 标记和重定位合并的优缺点246 8.4 ZGC新特性概览247 8.4.1 并发类卸载248 8.4.2 并发根扫描249 8.5 扩展阅读:分配预测模型的理论基础251 第三部分 JVM中垃圾回收相关参数介绍 第9章 GC通用参数259 9.1 GC生产参数259 9.1.1 GC选择相关参数259 9.1.2 GC工作线程相关参数261 9.1.3 内存设置相关参数263 9.1.4 停顿时间相关参数274 9.1.5 执行效率相关参数275 9.1.6 大页和NUMA参数284 9.1.7 GC日志相关参数285 9.1.8 其他参数285 9.2 GC实验参数288 9.2.1 GC选择相关参数288 9.2.2 引用处理相关参数288 9.2.3 GC任务均衡相关参数288 9.3 GC 诊断参数289 9.3.1 GC工作线程相关参数289 9.3.2 GC校验相关参数290 9.3.3 其他参数291 9.4 可动态调整的参数292 9.5 重要参数小结293 第10章 Parallel GC参数294 10.1 生产参数294 10.1.1 并行压缩相关参数294 10.1.2 并行复制相关参数296 10.2 重要参数小结296 第11章 CMS参数298 11.1 生产参数298 11.1.1 老生代分配相关参数298 11.1.2 老生代合并相关参数300 11.1.3 空闲列表管理相关参数300 11.1.4 老生代预清理相关参数303 11.1.5 老生代再标记相关参数306 11.1.6 Minor GC相关参数307 11.1.7 老生代GC触发控制相关参数308 11.1.8 老生代并行/并发控制相关参数310 11.1.9 其他参数311 11.2 诊断参数313 11.2.1 老生代碎片化相关参数313 11.2.2 Minor GC效率相关参数314 11.2.3 其他参数314 11.3 可动态调整的参数314 11.4 重要参数小结315 第12章 G1参数316 12.1 生产参数316 12.1.1 并发标记相关参数316 12.1.2 引用集处理相关参数318 12.1.3 内存设置相关参数321 12.1.4 Minor GC相关参数321 12.1.5 GC触发控制相关参数322 12.1.6 混合回收相关参数322 12.2 实验参数323 12.2.1 内存设置相关参数323 12.2.2 Minor GC相关参数324 12.2.3 混合回收相关参数325 12.2.4 其他参数325 12.3 可动态调整的参数326 12.4 诊断参数326 12.5 重要参数小结327 第13章 Shenandoah参数328 13.1 生产参数328 13.1.1 垃圾回收模式相关参数328 13.1.2 垃圾回收策略相关参数329 13.2 实验参数329 13.2.1 内存设置相关参数329 13.2.2 垃圾回收策略及相关参数330 13.2.3 并发标记相关参数335 13.3 诊断参数336 13.4 重要参数小结338 第14章 ZGC参数339 14.1 生产参数339 14.2 诊断参数341 14.3 重要参数小结342 第四部分 ARM服务器上的GC挑战和优化 第15章 泰山服务器概述345 15.1 ARM架构346 15.1.1 ARM介绍346 15.1.2 ARMv8-A特性348 15.2 鲲鹏处理器353 15.2.1 芯片架构353 15.2.2 内存管理子系统355 15.2.3 流水线技术356 15.2.4 内存一致性357 15.3 泰山服务器358 第16章 AArch64平台上的GC挑战和优化363 16.1 内存序363 16.2 众核架构对性能的影响369 16.3 NUMA对性能的影响370 16.4 其他影响370
×
Close
添加到书单
加载中...
点此新建书单
×
Close
新建书单
标题:
简介:
蜀ICP备2024047804号
Copyright 版权所有 © jvwen.com 聚文网