内容简介
《Java性能调优指南》主要展示了如何在当今先进的多核硬件和复杂的操作系统环境下,系统且主动地提高Java性能。本书对Charlie Hunt 和Binu John的经典图书《Java Performance》进行延伸,提供了两个前所未有的、强大的Java平台创新细节:Garbage First(G1)垃圾收集器和HotSpot虚拟机服务代理。
阅读《Java性能调优指南》,你可以在任何情况下从JDK8或9中发挥Java的最大性能。

作者简介
Charlie Hunt(芝加哥,伊利诺伊州)目前是一名在Oracle主导各种Java SE和HotSpot VM项目的JVM工程师,他的首要关注点在维持吞吐量和延迟的同时减少内存占用量。他也是JavaTM Performance 一书的第一作者。他是JavaOne大会的常任主持,并被公认为是Java超级明星。他同样是很多会议的发言人,包括QCon、Velocity、GoTo和Dreamforce。Charlie之前为Oracle主导过各种Java SE和HotSpot VM项目,经历过多个不同性能的岗位,包括在Salesforce.com担任性能工程架构师,以及在Oracle和Sun Microsystems担任HotSpot VM性能架构师。他在1998年写下了他的第一个Java应用程序,在1999年作为Java高级架构师加入Sun Microsystems,从那以后一直对Java和JVM的性能抱有热情。
Monica Beckwith是一位独立的性能顾问,主要从事优化基于Java虚拟机的服务级系统的客户应用程序。她过去的工作经历包括Oracle、Sun Microsystems和AMD。Monica曾经从事用Java HotSpot VM优化JIT编译器、生成代码、JVM启发式算法,以及垃圾收集和垃圾收集器方面的工作。她是许多会议上的固定发言人并多次发表主题为垃圾收集、Java内存模型等的文章。Monica领导过Oracle的G1垃圾收集器性能团队,并被人称为JavaOne摇滚明星。
Poonam Parhar (圣克拉拉,加利福利亚州)现在是一名在Oracle的JVM支持工程师,她的主要工作职责是解决针对JRockit和HotSpot VM的客户升级问题。她喜欢调试和排除故障,并且一直关注着HotSpot VM适用性和可维护性的提升。她明确了HotSpot VM里很多复杂的垃圾收集问题,并且为了能更方便进行故障排除和修复垃圾收集器相关的问题,她一直致力于提升调试工具和产品可维护性。她为可适用性代理调试器做出很多贡献,并为它开发了一个VisualVM插件。她在2011年的JavaOne会议上分享了“适用于SA 的VisualVM插件”。为了帮助客户和Java社区,她通过在https://blogs.oracle.com/poonam/上维护博客来分享自己的工作经验和知识。
Bengt Rutisson(斯德哥尔摩,瑞典)是一名Oracle的JVM工程师,他在HotSpot工程团队工作。过去十年一直从事关于JVM里的垃圾收集器的工作,他最初接触的是JRockit VM,随后六年使用HotSpot VM。Bengt是OpenJDK项目中的积极参与者,在特性、稳定性修复以及性能增强方面做出了许多贡献。

目录
前言 VII
致谢 IX
作者介绍 XII
第1章 Garbage First综述 1
术语 1
并行垃圾收集器 2
串行垃圾收集器 4
并发标记清除(CMS)垃圾收集器 5
收集器的概括总结 7
Garbage First(G1)垃圾收集器 8
G1设计 10
巨型(Humongous)对象 12
Full垃圾收集 12
并发周期 13
堆空间调整 13
引用 14


第2章 深入Garbage First垃圾收集器 15
背景 15
G1中的垃圾收集 16
年轻代 17
年轻代收集暂停 18
对象老化与老年代 19
巨型分区 19
混合收集 22
收集集合及其重要性 24
已记忆集合及其重要性 24
并发优化线程以及栅栏 28
G1 GC的并发标记 30
并发标记阶段 34
初始标记 34
根分区扫描 34
并发标记 34
重新标记 36
清除 36
转移失败与Full收集 37
引用 38


第3章 Garbage First垃圾收集器性能优化 39
年轻代收集的各阶段 39
所有并行活动的开始 41
外部根分区 42
已记忆集合和已处理缓冲区 42
已记忆集合总结 44
转移和回收 47
终止 47
GC外部的并行活动 48
所有并行活动总结 48
所有串行活动的启动 48
其他串行活动 49
年轻代调优 50
并发标记阶段调优 52
混合垃圾收集阶段回顾 54
混合垃圾收集阶段调优 56
避免转移失败 59
引用处理 60
观察引用处理 60
引用处理调优 62
引用 65


第4章 The Serviceability Agent 67
SA是什么 67
为什么要用SA 68
SA组件 68
JDK中的SA二进制文件 69
SA的JDK版本说明 69
SA如何获得Hotspot虚拟机的内部数据结构 70
SA版本对照 71
SA调试工具 72
HSDB 72
HSDB工具 80
命令行Hotspot调试器CLHSDB 100
其他工具 103
CoreDump和崩溃Dump文件 109
调试非本地生成的Core文件 109
SA的共享库问题 110
消除共享库问题 110
SA的系统属性 111
SA的环境变量 113
JDI实现 114
扩展SA工具 115
VisualVM的SA插件 118
VisualVM中怎样安装SA插件 119
SA插件使用 119
SA插件功能 120
用SA做故障分析 124
内存溢出错误分析 124
诊断语言层死锁 132
事后分析Hotspot虚拟机崩溃 137
附录 虚拟机命令行附加参数探秘 145
索引 155

书籍-Java性能调优指南相关推荐

  1. java性能调优指南,帮你解决90%的问题!

    正文 模块(Module).组件(Component).包(Package),这些概念对于我们技术同学并不陌生,但并不是所有人都能理解其要义. 深入理解之后,我才发现,其背后的深意是分类思维.而这种分 ...

  2. java性能调优指南,就是这么简单

    类的生命周期 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载,验证,准备,解析,初始化,使用,卸载这7个阶段.其中其中验证.准备.解析3个部分统称为连接. 加载.验证.准备 ...

  3. 还搞不懂性能调优?让你见识这份《Java性能调优PDF》啃完你就知道多厉害了!

    Java 应用性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢.接口超时,服务器负载高.并发数低,数据库频繁死锁等.尤其是在"糙快猛"的互联网开发模式大行其道的今天,随着系 ...

  4. java必读书籍_最佳5本Java性能调优书籍–精选,必读

    java必读书籍 为什么Java开发人员应该阅读有关性能调优的书? 当我很久以前第一次面对这个问题时,我以为以后会做,但是我很长一段时间都没有回过头来. 仅当我在用Java编写的任务关键型服务器端财务 ...

  5. 最佳5本Java性能调优书籍–精选,必读

    为什么Java开发人员应该阅读有关性能调优的书? 当我很久以前第一次面对这个问题时,我以为以后会做,但是我很长一段时间都没有回过头来. 仅当我在用Java编写的任务关键型服务器端财务应用程序中遇到严重 ...

  6. 书籍:推荐两本java性能调优

    第一本:Java性能优化权威指南 Java性能优化圣经!Java之父重磅推荐! 本书由曾任职于Oracle/Sun的性能优化专家编写,系统而详细地讲解了性能优化的各个方面,帮助你学习Java虚拟机的基 ...

  7. 为什么对 Java 性能调优最后都像在调 you?

    不知道你有没有发现,优化Java,或者任何其他语言的代码性能经常被当做是一种暗黑艺术. 性能分析有种神秘感.画面类似是这样的:一个「黑客」经过多年练就的手艺,能够快速深入了解某个系统,并提出神奇的解决 ...

  8. 11 个简练的 Java 性能调优技巧

    转载自 11 个简练的 Java 性能调优技巧 想要让你的项目一直高性能运作吗?以下有一些技巧你可以拿去消除缓存瓶颈,还有一些其他的性能调优建议. 大多数开发者认为性能优化是一个复杂的话题,它需要大量 ...

  9. java 性能调优_Java性能调优调查结果(第四部分)

    java 性能调优 这是本系列中的最后一篇文章,我们将分析我们在2014年10月进行的Java Performance Tuning Survey的结果.如果您尚未阅读第一篇文章,建议您首先阅读以下内 ...

  10. java 性能调优_Java性能调优调查结果(第三部分)

    java 性能调优 这是本系列文章的第三篇,我们将分析2014年10月进行的调查的结果.如果您尚未这样做,我建议从本系列的前两篇文章开始: 问题严重性分析和监视域分析 . 这篇文章着重于故障排除/根本 ...

最新文章

  1. android 创建隐藏文件夹吗,Android创建隐藏文件可能文件夹
  2. pytorch cat、stack、tranpose、permute、unsqeeze
  3. Java和js常用表达式
  4. 慕课堂签到迟到怎么办_线上教学第一周:长安大学精品课程助力“云端课堂”...
  5. Oracle-USERS表空间解读
  6. mysql存储过程时间_mysql时间操作函数和存储过程
  7. kubernetes实践之运行aspnetcore webapi微服务
  8. 数据库函数依赖及范式
  9. Pick!闲鱼亿级商品库中的秒级实时选品
  10. mac os 开启redis_高并发大流量,总会想到它!来一起通过docker搭建redis集群
  11. python编程模式_Python编程中的反模式
  12. 南非看世界杯通信问题全攻略(世界杯与通信1)
  13. 软考 2015年下半年卷 错题知识点记录
  14. 达思sql数据库修复软件:用友金蝶管家婆思迅中了勒索病毒怎么办?
  15. mysql数据库安全吗_mysql数据库的安全
  16. 外贸客户类型及跟进策略、找客户渠道
  17. VBScript: 正则表达式(RegExp对象)
  18. jad反编译成java_反编译工具jad的使用(将*.class文件变成*.java文件,附带jad.zip包)[转]...
  19. 干货分享!软考中高项案例分析10大管理领域理论背诵要点
  20. 参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。

热门文章

  1. DPDK收发包全景分析
  2. Linux 中断详解
  3. 3814.矩阵变换-AcWing题库
  4. ubuntu20.04下开发海康威视网络摄像头sdk(一)运行示例程序
  5. 网络编程----TCP通信
  6. python学习(六)----文件和异常
  7. pandas 删除特定行根据条件_记录21个Pandas技巧
  8. inno setup安装之前关闭mysql_inno setup 安装前判断进程是否存在,以及停止相应进程转...
  9. 10录屏电流声_到底有没有完全免费的电脑+手机(安卓)录屏神器推荐,要能录制系统内部声音+麦克风的?...
  10. 山东理工大计算机学院袁帅,山东理工大学学子讲坛暨第一届学生会学风建设交流会举办...