您好,欢迎来到聚文网。
登录
免费注册
网站首页
|
搜索
热搜:
磁力片
|
漫画
|
购物车
0
我的订单
商品分类
首页
幼儿
文学
社科
教辅
生活
销量榜
Java性能优化实践 JVM调优策略、工具与技巧
字数: 502000
装帧: 平装
出版社: 人民邮电出版社
作者: (英)本杰明·J.埃文斯,(英)詹姆斯·高夫,(英)克里斯·纽兰
出版日期: 2021-01-01
商品条码: 9787115552334
版次: 1
开本: 16开
页数: 340
出版年份: 2021
定价:
¥109
销售价:
登录后查看价格
¥{{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
舞蹈音乐的基础理论与应用
编辑推荐
在当前的互联网开发模式下,系统访问量日增、代码臃肿,各种性能问题纷涌而至。性能优化作为一个常谈常新的话题,受到越来越多开发者的关注。而Java是一门使用广泛的语言,社区生态中积攒了大量宝贵的性能优化经验。 1.作为一本性能调优方面的实用指南,本书从实验科学的角度将JVM调优的技术原理与方法论相结合,并在此基础上提供了可选择的工具。 2.通过对各方面的深入研究,本书能让使用复杂技术栈的中高级Java技术专家以量化和可验证的方法优化Java应用程序性能。 了解Java的原则和技术如何充分利用现代硬件和操作系统 探究一些性能测试以及困扰团队的常见反模式 理解测量Java性能数据的陷阱以及微基准测试的缺点 深入研究JVM垃圾收集日志、监控、调优和工具 探究JIT编译和Java语言性能技术 学习Java集合类API与性能有关的方面,从整体上理解Java并发
内容简介
本书从实验科学的角度探讨了Java性能优化的方方面面,重点阐述了近期新的实用JVM性能调优策略、工具和技巧。通过本书,我们不仅可以了解Java原理和技术如何充分利用现代硬件和操作系统、衡量Java性能的陷阱以及微基准测试的弊端有哪些,还能深入研究可能使团队烦恼的几种性能测试和常见反模式、JVM垃圾收集、JIT编译和Java语言性能技术等。本书为读者打开了深入理解Java性能的大门,并以路标助力其优化之旅。
作者简介
本杰明·J.埃文斯(Benjamin J.Evans),初创公司jClarity联合创始人和技术Fellow,获得过Java Champion荣誉和JavaOne Rockstar奖,《Java程序员修炼之道》合著者。 詹姆斯·高夫(James Gough),Java开发者和技术图书作者,任职于摩根士丹利,专注构建面向客户的技术。 克里斯·纽兰(Chris Newland),JITWatch项目作者,Java Champion荣誉得主,ADVFN高级开发者和团队负责人,擅长使用Java来处理实时的股市数据。 【译者介绍】 曾波,互联网架构师,拥有13年互联网从业经验,曾任职于微软、什么值得买、京东金融、鹏博士电信传媒集团,曾参与多家公司的技术团队从建立到成熟的过程,主持实施了重大技术决策和技术落地,在大规模复杂系统架构和技术管理方面拥有丰富的实践经验。
目录
中文版推荐序一xv
中文版推荐序二xvi
序xvii
前言xix
第1章明确优化与性能1
1.1关于Java性能的误解1
1.2Java性能概览2
1.3作为实验科学的性能3
1.4性能分类方法4
1.4.1吞吐量4
1.4.2延迟5
1.4.3容量5
1.4.4利用率5
1.4.5效率5
1.4.6可扩展性5
1.4.7降级6
1.4.8各种性能观测之间的关联6
1.5阅读性能图7
1.6小结11
第2章JVM概览12
2.1解释和类加载12
2.2执行字节码13
2.3HotSpot简介17
2.4JVM内存管理19
2.5线程和Java内存模型20
2.6认识不同的JVM20
2.7JVM的监控和工具22
2.8小结25
第3章硬件与操作系统26
3.1现代硬件简介27
3.2内存27
3.3现代处理器特性33
3.3.1翻译后备缓冲器33
3.3.2分支预测和推测执行33
3.3.3硬件存储器模型33
3.4操作系统34
3.4.1调度器35
3.4.2时间问题36
3.4.3上下文切换37
3.5一个简单的系统模型38
3.6基本探测策略39
3.6.1利用CPU40
3.6.2垃圾收集41
3.6.3I/O42
3.6.4机械共鸣43
3.7虚拟化44
3.8JVM和操作系统45
3.9小结46
第4章性能测试模式与反模式47
4.1性能测试的类型47
4.1.1延迟测试48
4.1.2吞吐量测试48
4.1.3负载测试49
4.1.4压力测试49
4.1.5耐久性测试49
4.1.6容量规划测试49
4.1.7退化测试50
4.2很好实践入门50
4.2.1自上而下的性能测试50
4.2.2创建一个测试环境51
4.2.3确定性能要求52
4.2.4Java特有的问题52
4.2.5将性能测试当作软件开发生命周期的一部分52
4.3性能反模式53
4.3.1厌倦53
4.3.2填充简历54
4.3.3同侪压力54
4.3.4缺乏理解54
4.3.5被错误理解的问题/不存在的问题54
4.4性能反模式目录55
4.4.1被热门技术分心55
4.4.2被简单分心55
4.4.3性能调优天才56
4.4.4按照坊间传说调优57
4.4.5把责任归咎给驴58
4.4.6忽略大局59
4.4.7用户验收测试环境就是我的计算机60
4.4.8类似生产环境的数据很难表示61
4.5认知偏差与性能测试62
4.5.1还原论思维62
4.5.2确认偏差63
4.5.3战争的迷雾(行动偏差)63
4.5.4风险偏差64
4.5.5埃尔斯伯格悖论64
4.6小结65
第5章微基准测试与统计66
5.1Java性能测量66
5.2JMH70
5.2.1不是万不得已,不要做微基准测试(一个真实的故事)70
5.2.2关于何时使用微基准测试的启发70
5.2.3JMH框架72
5.2.4执行基准测试73
5.3JVM性能统计77
5.3.1误差类型78
5.3.2非正态统计82
5.4统计的解释85
5.5小结88
第6章理解垃圾收集89
6.1标记和清除90
6.2HotSpot运行时92
6.2.1对象的运行时表示92
6.2.2GC根和Arena95
6.3分配与生命周期96
6.4HotSpot中的垃圾收集98
6.4.1线程本地分配98
6.4.2半空间收集99
6.5并行收集器100
6.5.1新生代并行收集101
6.5.2老年代并行收集102
6.5.3并行收集器的局限性103
6.6分配的作用104
6.7小结108
第7章垃圾收集高级话题109
7.1权衡与可插拔的收集器109
7.2并发垃圾收集理论111
7.2.1JVM安全点111
7.2.2三色标记112
7.3CMS114
7.3.1CMS是如何工作的115
7.3.2用于CMS的基本JVM标志117
7.4G1118
7.4.1G1堆布局和区域118
7.4.2G1算法设计119
7.4.3G1的各阶段120
7.4.4用于G1的基本JVM标志121
7.5Shenandoah121
7.5.1并发压缩123
7.5.2获取Shenandoah123
7.6C4(AzulZing)124
7.7IBMJ9中的均衡收集器127
7.7.1J9对象头128
7.7.2Balanced收集器的大数组129
7.7.3NUMA和Balanced收集器129
7.8遗留的HotSpot收集器130
7.8.1Serial和SerialOld130
7.8.2增量式CMS131
7.8.3已被废弃和删除的垃圾收集组合131
7.8.4Epsilon131
7.9小结132
第8章垃圾收集日志、监控、调优及工具133
8.1认识垃圾收集日志133
8.1.1开启垃圾收集日志记录133
8.1.2垃圾收集日志与JMX的对比134
8.1.3JMX的缺点135
8.1.4垃圾收集日志数据带来的好处136
8.2日志解析工具136
8.2.1Censum137
8.2.2GCViewer139
8.2.3对于同一数据的不同可视化效果140
8.3基本垃圾收集调优141
8.3.1理解分配行为142
8.3.2理解暂停时间144
8.3.3收集器线程和GC根145
8.4调优ParallelGC147
8.5调优CMS148
8.6调优G1150
8.7jHiccup152
8.8小结154
第9章JVM上的代码执行155
9.1字节码解释概览155
9.1.1JVM字节码158
9.1.2简单解释器163
9.1.3HotSpot特定细节165
9.2AOT编译和JIT编译166
9.2.1AOT编译166
9.2.2JIT编译167
9.2.3比较AOT和JIT168
9.3HotSpotJIT基础168
9.3.1Klass字、虚函数表和指针变换168
9.3.2JIT编译日志169
9.3.3HotSpot中的编译器171
9.3.4HotSpot中的分层编译171
9.4代码缓存172
9.5简单JIT调优173
9.6小结174
第10章理解即时编译175
10.1认识JITWatch175
10.1.1基本的JITWatch视图176
10.1.2调试JVM和hsdi180
10.2介绍JIT编译180
10.3内联181
10.3.1内联的182
10.3.2调优内联子系统183
10.4循环展开184
10.5逃逸分析186
10.5.1消除堆分配187
10.5.2锁与逃逸分析188
10.5.3逃逸分析的189
10.6单态分派192
10.7内部函数195
10.8栈上替换197
10.9再谈安全点199
10.10核心库方法199
10.10.1内联方法的大小上限199
10.10.2编译方法的大小上限203
10.11小结204
第11章Java语言性能技术205
11.1优化集合206
11.2针对列表的优化考虑207
11.2.1ArrayList207
11.2.2LinkedList208
11.2.3ArrayList与LinkedList的对比209
11.3针对映射的优化考虑210
11.3.1HashMap210
11.3.2TreeMap212
11.3.3缺少MultiMap213
11.4针对集的优化考虑213
11.5领域对象213
11.6避免终结化216
11.6.1血泪史:忘记清理217
11.6.2为什么不使用终结化来解决这个问题217
11.6.3try-with-resources219
11.7方法句柄223
11.8小结226
第12章并发性能技术227
12.1并行介绍228
12.2理解JMM232
12.3构建并发库236
12.3.1Unsafe237
12.3.2原子与CAS238
12.3.3锁和自旋锁239
12.4并发库总结240
12.4.1java.util.concurrent中的Lock240
12.4.2读/写锁241
12.4.3信号量242
12.4.4并发集合242
12.4.5锁存器和屏障243
12.5执行器和任务抽象245
12.5.1认识异步执行245
12.5.2选择一个ExecutorService246
12.5.3Fork/Join246
12.6现代Java并发248
12.6.1流和并行流248
12.6.2无锁技术249
12.6.3基于Actor的技术250
12.7小结251
第13章剖析252
13.1认识剖析252
13.2采样与安全点偏差253
13.3面向开发人员的执行剖析工具255
13.3.1VisualVM剖析器255
13.3.2JProfiler256
13.3.3YourKit261
13.3.4JavaFlightRecorder和JavaMissionControl262
13.3.5运维工具266
13.4现代剖析器269
13.5分配剖析器272
13.6堆转储分析278
13.7小结280
第14章高性能日志和消息系统281
14.1日志282
14.2设计一个影响较低的日志记录器284
14.3使用RealLogic库实现低延迟286
14.3.1Agrona287
14.3.2SimpleBinaryEncoding291
14.3.3Aeron294
14.3.4Aeron的设计296
14.4小结299
第15章Java9以及Java的未来方向300
15.1Java9中小的性能增强301
15.1.1分段式代码缓存301
15.1.2紧凑的字符串301
15.1.3新的字符串连接302
15.1.4C2编译器的改进303
15.1.5新版G1收集器304
15.2Java10和未来版本305
15.2.1新的发布流程305
15.2.2Java10305
15.3Java9及更高版本中的Unsafe307
15.4Valhalla项目和值类型308
15.5Graal和Truffle312
15.6字节码的未来方向313
15.7并发的未来方向315
15.8总结316
作者介绍318
封面介绍318
×
Close
添加到书单
加载中...
点此新建书单
×
Close
新建书单
标题:
简介:
蜀ICP备2024047804号
Copyright 版权所有 © jvwen.com 聚文网