Java性能优化权威指南duke-Java性能优化权威指南豆瓣PDF电子书下载

Java性能优化权威指南duke-Java性能优化权威指南豆瓣PDF电子书下载

编辑点评:

《Java性能优化权威指南》是Java应用性能调优的圣经,内容通俗易懂,介绍了大量的监控和测量工具,涉及各种硬件架构和操作系统。涵盖了如何构建实验、解释结果以及如何采取行动等技巧。

20201116153757.png

作者简介

Charlie Hunt,现任Salesforce公司的性能工程架构师。曾任Oracle公司首席JVM性能工程师,负责HotSpot Java虚拟机和Java SE类库性能的改进。Charlie拥有美国伊利诺伊理工大学的计算机科学硕士学位、爱荷华州立大学的计算机科学学士学位。

Binu John,世界上大的社交网站创建平台Ning.com的高级性能工程师。他目前的职责是着力改善Ning平台的性能和扩展性,以支持每月数百万PV的访问量。Binu拥有美国爱荷华大学生物医学工程和计算机科学硕士学位。

译者简介:

柳飞,毕业于中国科学技术大学和复旦大学。现为上海爱科生信息技术有限公司工程师,曾任OOCL ISD工程师。目前主要关注的领域为MySQL和分布式计算。十年码农两忙忙,不coding,自难忘。徒步及跑步业余凑热闹者,中度拖延症患者。

陆明刚,毕业于四川大学,近十年大型软件研发测试经验,现任易安信中国卓越中心资深软件工程师,曾任趋势科技中国软件研发中心技术经理,关注JVM性能调优和大数据,喜欢挖掘技术背后的内幕,并乐此不疲。

精彩书评

“本书是Java性能优化的圣经!如果你是一个细节控,那么这本书正适合你。”

  ——James Gosling,Java之父

“《Java性能优化专业指南》是Java应用性能优化的必备参考书。它由Oracle/Sun的性能优化专家编写,系统而详细地讲解了性能优化的各个方面,从底层的操作系统及JVM的原理与监控工具,到性能测试技巧,再到上层应用框架优化。如果有Java性能优化的疑问,请先从本书开始寻找答案,无论新手老手都能从中收益。”

  ——莫枢,JVM开发工程师,Azul Systems

“要对Java程序做性能优化,不仅要对应用的代码实现有足够的了解,还需要对更底层的OS、JVM有较深的了解。这本书介绍了Java程序员也需要掌握的OS、JVM层面的很多知识,更吸引人的是这本书的作者结合自己的经验,为大家总结了一些性能优化的模式,例如CPU利用率高的时候需要怎么进行优化,这些模式让人受益匪浅,相信读过后能对大家日常工作中做性能优化提供不小的帮助。”

  ——林昊,阿里巴巴技术专家

“长期以来,一些人对Java存在一种偏见,认为Java程序存在运行性能低下的缺点。本书由浅入深地介绍了对于Java程序进行性能优化的各种工具和方法,帮助你学习Java虚拟机的基本原理、掌握一些监控Java程序性能的工具,从而快速找到程序中的性能瓶颈,并有效改善程序的运行性能。读过本书,人们将能够消除对Java程序性能的偏见,让Java真正展现出强大魅力。”

  ——李凡希,阿里巴巴资深研发工程师

“性能优化是一门非常实战性的技术,本书正是这样一本非常具有实战指导意义的作品。该书涵盖了Java应用、Web应用、EJB等若干不同场景下的性能分析、监控、优化的上佳实践和工具,具有相当的广度,同时该书也绝不是工具和数据的堆砌,书中对很多底层细节有着深入和细致的介绍和分析,比如GC、JIT等JVM的基本原理,都体现了作者的技术深度。通读本书能让你更好地理解Java,并洞察和解决潜在的性能问题。”

  ——邹飞,Google资深软件工程师、技术经理

章节详解

第1章“策略、方法和方法论”,介绍了Java性能调优实践中的各种方法、策略和方法论,并对传统软件开发过程提出了改进建议,即在软件开发中应该提前考虑软件应用的性能和可扩展性。

第2章“操作系统性能监控”讨论了操作系统的性能监控,介绍了操作系统中重要的监控统计信息,以及如何用工具监控这些统计信息。本章涉及的操作系统包括Windows、Linux及Oracle Solaris。在其他基于Unix的系统(例如Mac OS X)上监控性能统计信息时,可使用与Linux或Oracle Solaris相同或类似的命令。

第3章“JVM概览”,高屋建瓴地介绍了HotSpot VM,描述了现代Java虚拟机架构和运转的基本概念,并为后续的诸多章节奠定了基础。本章没有覆盖所有的Java性能调优问题,也没有提供Java性能问题所需的全部背景知识。但对于绝大多数与现代Java虚拟机内部机制密切相关的性能问题,本章提供了足够多的背景知识。结合第7章的内容,有助于你领会如何进行HotSpot VM调优,本章也有助于理解第8、9章的主题,即如何编写高效的基准测试。

第4章“JVM性能监控”,顾名思义,涵盖了JVM性能监控的相关内容,介绍了重点需要监控的JVM统计数据,以及监控这些统计数据的工具。本章最后指出,这些工具扩展之后可以一并监控JVM和Java应用的统计数据。

第5章“Java应用性能分析”与第6章“Java应用性能分析技巧”讲述性能分析。这两章可看成第2章和第4章性能监控的补充。性能监控通常用来考察是否存在性能问题,或者为定位性能问题提供线索,告诉人们问题是出在操作系统、JVM、Java应用程序还是其他地方。一旦发现性能问题,并进一步通过性能监控定位之后,通常就能进行性能分析了。第5章介绍分析Java方法和Java堆(内存)的基本技术,还推荐了一些免费工具来说明这几种性能分析技术背后所蕴藏的概念。本章提及的工具并不是性能分析仅有的手段,还有许多商业或者免费的工具也能提供类似的功能,其中一些工具的功能甚至超出了第5章涉及的技术范围。第6章提供了一些技巧,用来识别一些常见的性能分析模式,这些模式指示了一些特定类型的性能问题。本章所列的经验和技巧并不完整,却是作者在多年Java性能调优过程中经常碰到的。附录B中包含了第6章大部分示例的源代码。

第7章“JVM性能调优入门”,涵盖了HotSpot VM性能调优的诸多方面,包括启动、内存占用、响应时间/延迟以及吞吐量。第7章介绍了调优的一系列步骤,包括选择哪个JIT编译器,选用何种垃圾收集器,怎样调整Java堆,以及如何改动应用程序以符合干系人设定的性能目标。对于大多数读者来说,第7章可能是本书中最有用和最值得参考的章节。

第8章“Java应用的基准测试”和第9章“多层应用的基准测试”,探讨如何编写高效的基准测试。通常来说,基准测试是通过应用程序的功能子集来衡量Java应用的性能。这两章还将展示创建高效Java基准测试的艺术。第8章涵盖了与编写高效基准测试相关的较通用的主题,例如探讨现代JVM的一些优化方法,还介绍了如何在基准测试中运用统计方法以增强基准测试的准确性。第9章则重点关注如何编写高效的Java EE基准测试。

有些读者对Java EE应用的性能调优特别感兴趣,第10章“Web应用的性能调优”、第11章“Web Service的性能”及第12章“Java持久化和Enterprise Java Bean的性能”,分别着重介绍了Web应用、Web Service、持久化及Enterprise Java Bean的性能分析。这3章会深入分析Java EE应用中常遇到的性能问题,并为常见的Java EE性能问题提供建议或解决方案。

本书还有两个附录。附录A“重要的HotSpot VM选项”列举了本书所用到的HotSpot VM选项和其他重要的HotSpot VM性能调优选项,并描述了每个选项的含义,对何时可以使用这些选项给出了建议。附录B“性能分析技巧示例源代码”包含了第6章示例的源代码,涉及减少锁竞争、调整Java 集合(Collection)的初始容量以及增加并行性。

精彩书摘

2.4.6监控锁竞争:Windows

与Solaris和Linux相比,Windows的内建工具难以监控Java锁竞争。Windows的性能计数器(包括Performance Monitor和typeperf)可以监控上下文切换,但无法区分让步和抢占式上下文切换。Windows上监控Java锁竞争,通常需要外部工具,例如Intel VTune或AMD CodeAnalyst。这些工具既可以监控其他性能统计数据和CPU性能计数器,也能分析Java锁。

2.4.7隔离竞争锁

在Java源代码中追查竞争锁历来都是难题。要想找到Java应用中的竞争锁,通常是定期转储线程,查找那些可能在多个线程中因共享锁而被阻塞的线程。这个过程的示例详见第4章。

Oracle Solaris Studio Performance Analyzer可以在Linux和Solaris上使用,是本书作者用过最好的隔离和报告Java锁竞争的工具之一。第5章详细介绍如何用Performance Analyzer查找Java应用中的竞争锁,示例详见第6章。

其他性能分析工具也可以找出Windows上的竞争锁。功能和Oracle Solaris Studio PerformanceAnalyzer相近的还有Intel VTune和AMD CodeAnalyst。

2.4.8监控抢占式上下文切换

前文提到了抢占式上下文切换以及它与让步式上下文切换之间的不同,不过没有详细解释。让步式上下文切换是指执行线程主动释放CPU,抢占式上下文切换是指线程因为分配的时间片用尽而被迫放弃CPU或者被其他优先级更高的线程所抢占。Solaris上mpstat的icsw列可以查看抢占式上下文切换。

Java性能优化权威指南豆瓣PDF电子书下载截图

Java性能优化权威指南duke-Java性能优化权威指南豆瓣PDF电子书下载插图(1)Java性能优化权威指南duke-Java性能优化权威指南豆瓣PDF电子书下载插图(2)Java性能优化权威指南duke-Java性能优化权威指南豆瓣PDF电子书下载插图(3)Java性能优化权威指南duke-Java性能优化权威指南豆瓣PDF电子书下载插图(4)Java性能优化权威指南duke-Java性能优化权威指南豆瓣PDF电子书下载插图(5)

评分及评论

无用户评分

来评个分数吧

  • 5 分
    0
  • 4 分
    0
  • 3 分
    0
  • 2 分
    0
  • 1 分
    0

Comments