读书月福利
欢迎光临中图网 请 | 注册
> >>
实战Java虚拟机-JVM故障诊断与性能优化

实战Java虚拟机-JVM故障诊断与性能优化

作者:葛一鸣
出版社:电子工业出版社出版时间:2015-03-01
开本: 16开 页数: 436
中 图 价:¥67.2(8.5折) 定价  ¥79.0 登录后可看到会员价
暂时缺货 收藏
运费6元,满69元免运费
?快递不能达地区使用邮政小包,运费14元起
云南、广西、海南、新疆、青海、西藏六省,部分地区快递不可达
本类五星书更多>

实战Java虚拟机-JVM故障诊断与性能优化 版权信息

实战Java虚拟机-JVM故障诊断与性能优化 本书特色

    随着越来越多的第三方语言(groovy、scala、jruby等)在java虚拟机上运行,java也俨然成为一个充满活力的生态圈。本书将通过200余示例详细介绍java虚拟机中的各种参数配置、故障排查、性能监控以及性能优化。     本书共11章。第1~3章介绍了java虚拟机的定义、总体架构、常用配置参数。第4~5章介绍了垃圾回收的算法和各种垃圾回收器。第6章介绍了虚拟机的性能监控和故障诊断工具。第7章详细介绍了对java堆的分析方法和案例。第8章介绍了java虚拟机对多线程,尤其是锁的支持。第9~10章介绍了虚拟机的核心——class文件结构,以及虚拟机中类的装载系统。第11章介绍了虚拟机的执行系统和字节码,并给出了通过asm框架进行字节码注入的案例。

实战Java虚拟机-JVM故障诊断与性能优化 内容简介

本书的主要特点有: 1. 结构清晰。步步为营,每一章节对应一个单独的知识点,力求展示虚拟机的全貌。 2. 理论结合实战。在每一个理论背后,都给出了演示示例供读者参考。 3. 专注专业。包括但不限于体系结构、虚拟机的调试方式、常用参数、垃圾回收系统、class文件结构、执行系统等,力求从多角度更专业地对java虚拟机进行探讨。 4. 通俗易懂。简单的白话文风格贯穿全书,尽量做到读者在阅读过程中少盲点、无盲点。 5. 技术全面。纵横windows和linux双系统下的性能诊断、涉及32位系统和64位系统的优化比较、贯穿从jdk 1.5到jdk 1.8的优化演进。

实战Java虚拟机-JVM故障诊断与性能优化 目录

第1章 初探java虚拟机 1
1.1  知根知底:追溯java的发展历程 2
1.1.1  那些依托java虚拟机的语言大咖们 2
1.1.2  java发展史上的里程碑 2
1.2  跨平台的真相:java虚拟机来做中介 4
1.2.1  理解java虚拟机的原理 4
1.2.2  看清java虚拟机的种类 5
1.3  一切看我的:java语言规范 6
1.3.1  词法的定义 6
1.3.2  语法的定义 7
1.3.3  数据类型的定义 8
1.3.4  java语言规范总结 9
1.4  一切听我的:java虚拟机规范 9
1.5  数字编码就是计算机世界的水和电 10
1.5.1  整数在java虚拟机中的表示 10
1.5.2  浮点数在java虚拟机中的表示 12
1.6  抛砖引玉:编译和调试虚拟机 14
1.7  小结 19
第2章 认识java虚拟机的基本结构 20
2.1  谋全局者才能成大器:看穿java虚拟机的架构 20
2.2  小参数能解决大问题:学会设置java虚拟机的参数 22
2.3  对象去哪儿:辨清java堆 23
2.4  函数如何调用:出入java栈 25
2.4.1  局部变量表 27
2.4.2  操作数栈 32
2.4.3  帧数据区 32
2.4.4  栈上分配 33
2.5  类去哪儿了:识别方法区 35
2.6  小结 37
第3章 常用java虚拟机参数 38
3.1  一切运行都有迹可循:掌握跟踪调试参数 38
3.1.1  跟踪垃圾回收——读懂虚拟机日志 39
3.1.2  类加载/卸载的跟踪 42
3.1.3  系统参数查看 44
3.2  让性能飞起来:学习堆的配置参数 45
3.2.1  *大堆和初始堆的设置 45
3.2.2  新生代的配置 49
3.2.3  堆溢出处理 52
3.3  别让性能有缺口:了解非堆内存的参数配置 54
3.3.1  方法区配置 55
3.3.2  栈配置 55
3.3.3  直接内存配置 55
3.4  client和server二选一:虚拟机的工作模式 58
3.5  小结 59
第4章 垃圾回收概念与算法 60
4.1  内存管理清洁工:认识垃圾回收 60
4.2  清洁工具大pk:讨论常用的垃圾回收算法 61
4.2.1  引用计数法(reference counting) 62
4.2.2  标记清除法(mark-sweep) 63
4.2.3  复制算法(copying) 64
4.2.4  标记压缩法(mark-compact) 66
4.2.5  分代算法(generational collecting) 67
4.2.6  分区算法(region) 68
4.3  谁才是真正的垃圾:判断可触及性 69
4.3.1  对象的复活 69
4.3.2  引用和可触及性的强度 71
4.3.3  软引用——可被回收的引用 72
4.3.4  弱引用——发现即回收 76
4.3.5  虚引用——对象回收跟踪 77
4.4  垃圾回收时的停顿现象:stop-the-world案例实战 79
4.5  小结 83
第5章 垃圾收集器和内存分配 84
5.1  一心一意一件事:串行回收器 85
5.1.1  新生代串行回收器 85
5.1.2  老年代串行回收器 86
5.2  人多力量大:并行回收器 86
5.2.1  新生代parnew回收器 87
5.2.2  新生代parallelgc回收器 88
5.2.2  老年代paralleloldgc回收器 89
5.3  一心多用都不落下:cms回收器 90
5.3.1  cms主要工作步骤 90
5.3.2  cms主要的设置参数 91
5.3.3  cms的日志分析 92
5.3.4  有关class的回收 94
5.4  未来我做主:g1回收器 95
5.4.1  g1的内存划分和主要收集过程 95
5.4.2  g1的新生代gc 96
5.4.3  g1的并发标记周期 97
5.4.4  混合回收 100
5.4.5  必要时的full gc 102
5.4.6  g1日志 102
5.4.7  g1相关的参数 106
5.5  回眸:有关对象内存分配和回收的一些细节问题 107
5.5.1  禁用system.gc() 107
5.5.2  system.gc()使用并发回收 107
5.5.3  并行gc前额外触发的新生代gc 109
5.5.4  对象何时进入老年代 110
5.5.5  在tlab上分配对象 117
5.5.6  方法finalize()对垃圾回收的影响 120
5.6  温故又知新:常用的gc参数 125
5.7  动手才是真英雄:垃圾回收器对tomcat性能影响的实验 127
5.7.1  配置实验环境 127
5.7.2  配置进行性能测试的工具jmeter 128
5.7.3  配置web应用服务器tomcat 131
5.7.4  实战案例1——初试串行回收器 133
5.7.5  实战案例2——扩大堆以提升系统性能 133
5.7.6  实战案例3——调整初始堆大小 134
5.7.7  实战案例4——使用parrelloldgc回收器 135
5.7.8  实战案例5——使用较小堆提高gc压力 135
5.7.9  实战案例6——测试paralleloldgc的表现 135
5.7.10 实战案例7——测试parnew回收器的表现 136
5.7.11 实战案例8——测试jdk 1.6的表现 136
5.7.12 实验9——使用高版本虚拟机提升性能 137
5.8  小结 137
第6章 性能监控工具 138
6.1  有我更高效:linux下的性能监控工具 139
6.1.1  显示系统整体资源使用情况——top命令 139
6.1.2  监控内存和cpu——vmstat命令 140
6.1.3  监控io使用——iostat命令 142
6.1.4  多功能诊断器——pidstat工具 143
6.2  用我更高效:windows下的性能监控工具 148
6.2.1  任务管理器 148
6.2.2  perfmon性能监控工具 150
6.2.3  process explorer进程管理工具 153
6.2.4  pslist命令——windows下也有命令行工具 155
6.3  外科手术刀:jdk性能监控工具 157
6.3.1  查看java进程——jps命令 158
6.3.2  查看虚拟机运行时信息——jstat命令 159
6.3.3  查看虚拟机参数——jinfo命令 162
6.3.4  导出堆到文件——jmap命令 163
6.3.5  jdk自带的堆分析工具——jhat命令 165
6.3.6  查看线程堆栈——jstack命令 167
6.3.7  远程主机信息收集——jstatd命令 170
6.3.8  多功能命令行——jcmd命令 172
6.3.9  性能统计工具——hprof 175
6.3.10 扩展jps命令 177
6.4  我是你的眼:图形化虚拟机监控工具jconsole 178
6.4.1  jconsole连接java程序 178
6.4.2  java程序概况 179
6.4.3  内存监控 180
6.4.4  线程监控 180
6.4.5  类加载情况 182
6.4.6  虚拟机信息 182
6.5  一目了然:可视化性能监控工具visual vm 183
6.5.1  visual vm连接应用程序 184
6.5.2  监控应用程序概况 185
6.5.3  thread dump和分析 186
6.5.4  性能分析 187
6.5.5  内存快照分析 189
6.5.6  btrace介绍 190
6.6  来自jrockit的礼物:虚拟机诊断工具mission control 198
6.6.1  mbean服务器 198
6.6.2  飞机记录器(flight recorder) 200
6.7  小结 203
第7章 分析java堆 204
7.1  对症才能下药:找到内存溢出的原因 205
7.1.1  堆溢出 205
7.1.2  直接内存溢出 205
7.1.3  过多线程导致oom 207
7.1.4  永久区溢出 209
7.1.5  gc效率低下引起的oom 210
7.2  无处不在的字符串:string在虚拟机中的实现 210
7.2.1  string对象的特点 210
7.2.2  有关string的内存泄漏 212
7.2.3  有关string常量池的位置 215
7.3  虚拟机也有内窥镜:使用mat分析java堆 217
7.3.1  初识mat 217
7.3.2  浅堆和深堆 220
7.3.4  例解mat堆分析 221
7.3.5  支配树(dominator tree) 225
7.3.6  tomcat堆溢出分析 226
7.4  筛选堆对象:mat对oql的支持 230
7.4.1  select子句 230
7.4.2  from子句 232
7.4.3  where子句 234
7.4.4  内置对象与方法 234
7.5  更精彩的查找:visual vm对oql的支持 239
7.5.1  visual vm的oql基本语法 239
7.5.2  内置heap对象 240
7.5.3  对象函数 242
7.5.4  集合/统计函数 247
7.5.5  程序化oql分析tomcat堆 252
7.6  小结 255
第8章 锁与并发 256
8.1  安全就是锁存在的理由:锁的基本概念和实现 25
展开全部

实战Java虚拟机-JVM故障诊断与性能优化 相关资料

    对java程序员来说,java虚拟机(jvm)可以说是既熟悉又神秘,很少有java程序员能够抑制自己探究它的冲动。可惜分析jvm故障诊断与性能优化的书籍(尤其是国内出版的)简直少之又少。本书的出版可谓研究jvm的程序员的福音,作者注重理论联系实际,对于理论性较强的章节和知识点安排了大量的实践案例来说明和进行实际操作,具有非常强的实践指导意义。同时本书配套操作视频《深入浅出java虚拟机——入门篇》在51cto学院独家发布后受到了51cto社区广大开发者和爱好者的好评和认可,所以,强烈推荐本书给爱好jvm的你!
    ——51cto学院高级运营经理 曹亚莉

实战Java虚拟机-JVM故障诊断与性能优化 作者简介

    葛一鸣,51CTO特约讲师,国家认证系统分析师,获得Oracle OCP认证。长期从事Java软件开发工作,对Java程序设计、JVM有深入的研究,对设计模式、人工智能、神经网络、数据挖掘等技术有浓厚兴趣,著有《自己动手写神经网路》电子书,也开设了在线的《深入浅出Java虚拟机——入门篇》培训课程。

商品评论(0条)
暂无评论……
书友推荐
编辑推荐
返回顶部
中图网
在线客服