• Java能指南
  • Java能指南
21年品牌 40万+商家 超1.5亿件商品

Java能指南

正版现货 可开具图书发票 下单后当天即可发货

89.81 6.9折 129.8 全新

库存21件

山西太原
认证卖家担保交易快速发货售后保障

作者(美)斯科特·奥克斯

出版社人民邮电出版社

ISBN9787115587367

出版时间2021-08

装帧平装

开本16开

定价129.8元

货号11557641

上书时间2024-08-30

A365书库

七年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介

【作者简介】 斯科特·奥克斯(Scott Oaks) Oracle公司架构师,从事Oracle云平台软件的性能优化工作。在加入Oracle之前,他是Sun公司的Java布道师,并在2001年加入Java性能工程小组,专注于Java的性能优化工作。除了本书,他还著有多部涉及Java线程、Java安全等方面的著作。 【译者简介】 党文亮 沉浸Java相关领域多年,目前在华为云专注于性能诊断平台和OS管理系统的研发,有大量从0到1的项目实践经验,在逆向、性能、算法等方面都有一定的积累。



目录

前言

第1章 导论

 1.1 概述

 1.2 平台和约定

 1.2.1 Java平台

 1.2.2 硬件平台

 1.3 全面的性能

 1.3.1 写出更好的算法

 1.3.2 写更少的代码

 1.3.3 过早优化

 1.3.4 其他:数据库永远是瓶颈

 1.3.5 常见优化

 1.4 小结

第2章 性能测试方法

 2.1 测试真实的应用程序

 2.1.1 微基准测试

 2.1.2 宏基准测试

 2.1.3 介基准测试

 2.2 理解吞吐量、批处理时间和响应时间

 2.2.1 测量批处理时间

 2.2.2 测量吞吐量

 2.2.3 测量响应时间

 2.3 理解可变性

 2.4 早测试、常测试

 2.5 基准测试示例

 2.5.1 Java微基准测试工具

 2.5.2 常用代码示例

 2.6 小结

第3章 Java性能工具箱

 3.1 操作系统工具和分析

 3.1.1 CPU使用率

 3.1.2 CPU运行队列

 3.1.3 磁盘使用率

 3.1.4 网络使用率

 3.2 Java 监控工具

 3.2.1 基本的VM信息

 3.2.2 线程信息

 3.2.3 类信息

 3.2.4 实时GC分析

 3.2.5 堆转储后期处理

 3.3 性能分析工具

 3.3.1 采样分析器

 3.3.2 探查分析器

 3.3.3 阻塞方法和线程时间线

 3.3.4 原生分析器

 3.4 JFR

 3.4.1 Java Mission Control

 3.4.2 JFR概览

 3.4.3 开启JFR

 3.4.4 选择JFR事件

 3.5 小结

第4章 使用即时编译器

 4.1 即时编译器:概览

 4.2 分层编译

 4.3 常用的编译器标志

 4.3.1 优化代码缓存

 4.3.2 检查编译过程

 4.3.3 分层编译级别

 4.3.4 逆优化

 4.4 不错编译器标志

 4.4.1 编译阈值

 4.4.2 编译线程

 4.4.3 内联

 4.4.4 逃逸分析

 4.4.5 CPU相关代码

 4.5 分层编译的权衡

 4.6 GraalVM

 4.7 预编译

 4.7.1 提前编译

 4.7.2 GraalVM原生编译

 4.8 小结

第5章 垃圾回收简介

 5.1 垃圾回收概览

 5.1.1 分代垃圾回收器

 5.1.2 GC算法

 5.1.3 选择GC算法

 5.2 GC 优化基础

 5.2.1 调整堆的大小

 5.2.2 调整分代大小

 5.2.3 调整元空间大小

 5.2.4 控制并行

 5.3 GC工具

 5.3.1 在JDK 8中开启GC日志

 5.3.2 在JDK 11中开启GC日志

 5.4 小结

第6章 垃圾回收算法

 6.1 理解Throughput回收器

 6.2 理解G1垃圾回收器

 6.3 理解CMS回收器

 6.4 不错优化

 6.4.1 晋升和Survivor空间

 6.4.2 分配大对象

 6.4.3 AggressiveHeap标志

 6.4.4 接近掌控堆的大小

 6.5 实验性GC算法

 6.5.1 并发压缩:ZGC和Shenandoah

 6.5.2 无回收:Epsilon GC

 6.6 小结

第7章 堆内存很好实践

 7.1 堆分析

 7.1.1 堆直方图

 7.1.2 堆转储

 7.1.3 内存溢出错误

 7.2 减少内存使用

 7.2.1 减小对象大小

 7.2.2 使用延迟初始化

 7.2.3 使用不可变对象和标准化对象

 7.3 对象生命周期管理

 7.3.1 对象重用

 7.3.2 软引用、弱引用和其他引用

 7.3.3 压缩的普通对象指针

 7.4 小结

第8章 原生内存很好实践

 8.1 内存占用

 8.1.1 测量内存占用

 8.1.2 最小化内存占用

 8.1.3 原生内存跟踪

 8.1.4 共享库原生内存

 8.2 针对操作系统的JVM优化

 8.3 小结

第9章 线程和同步性能

 9.1 线程和硬件

 9.2 线程池和ThreadPoolExecutor

 9.2.1 设置优选线程数

 9.2.2 设置最小线程数

 9.2.3 线程池任务大小

 9.2.4 设置ThreadPoolExecutor的大小

 9.3 ForkJoinPool.

 9.3.1 工作窃取

 9.3.2 自动并行化

 9.4 线程同步

 9.4.1 同步的代价

 9.4.2 避免同步

 9.4.3 伪共享

 9.5 JVM线程优化

 9.5.1 优化线程栈大小

 9.5.2 偏向锁

 9.5.3 线程优先级

 9.6 监控线程和锁

 9.6.1 查看线程

 9.6.2 查看阻塞线程

 9.7 小结

第10章 Java服务器

 10.1 Java NIO概览

 10.2 服务器容器

 10.2.1 优化服务器线程池

 10.2.2 异步Rest服务器

 10.3 异步出站调用

 10.4 JSON处理

 10.4.1 解析和编组概览

 10.4.2 JSON对象

 10.4.3 JSON解析

 10.5 小结

第11章 数据库性能很好实践

 11.1 示例数据库

 11.2 JDBC

 11.2.1 JDBC驱动

 11.2.2 JDBC连接池

 11.2.3 预处理语句和语句池

 11.2.4 事务

 11.2.5 结果集处理

 11.3 JPA

 11.3.1 优化JPA写

 11.3.2 优化JPA读

 11.3.3 JPA缓存

 11.4 Spring Data

 11.5 小结

第12章 Java SE API技巧

 12.1 字符串

 12.1.1 压缩字符串

 12.1.2 重复字符串和字符串保留

 12.1.3 字符串连接

 12.2 缓冲I/O

 12.3 类加载

 12.4 随机数

 12.5 Java原



内容摘要

  第1章 导论  本书讨论Java性能优化的艺术与科学。  Java性能优化是一门科学,这样说并不令人惊讶:关于性能的讨论包含大量数字、评测和分析。大部分性能优化工程师拥有科学类的学科背景,而且实现最佳性能的关键就是严谨地运用科学方法。  那么Java性能优化是艺术吗?性能优化既是一门科学,又是一门艺术,这种说法并不新鲜,但是我们在讨论性能时很少明确地承认这一点。部分原因是“艺术”的概念与我们的调试过程相悖。对于一些人来说,看起来是艺术的东西,基本上都基于丰富的知识和经验。而足够先进的技术和魔法无异,就像对于圆桌骑士来说,手机真的拥有魔法。同理,优秀的性能优化工程师的工作成果犹如艺术作品,只不过这些艺术作品源于渊博的知识、丰富的经验和敏锐的直觉。  本书不能在经验和直觉方面提供帮助,但是可以帮助你积累丰富的知识。积年累月地使用这些知识,能帮助你获得优秀Java性能优化工程师的必备技能。本书的目标是让你深入理解Java平台的性能。  这些知识分为两大部分。第一部分关于Java虚拟机(Java Virtual Machine,JVM)的性能优化,即如何通过JVM的配置方式影响程序的性能。使用其他语言的资深开发人员可能认为JVM优化有点令人厌烦,但实际上,JVM优化类似于C++程序员在编译阶段测试和挑选编译器参数,或者PHP程序员在php.ini文件中设置合适的变量。  第二部分关于理解Java平台的特性如何影响性能。注意,这里使用了平台这个词:有些平台特性(比如线程和同步)是Java语言的一部分,而有些平台特性(比如字符串处理)是Java标准API的一部分。尽管Java语言和Java API有着显著的区别,但在本书中,两者会被同等对待。这两方面在本书中都会讲到。  JVM的性能主要取决于标志优化,而平台的性能更多地取决于是否在代码中应用了最佳实践。一直以来,开发人员只负责编写代码,性能优化组只负责测试并提出性能优化建议,这两方面被认为是独立的专业领域。这种区分从来就不太有用,因为任何使用Java工作的人都应该理解代码在JVM中的行为,也应该知道什么样的优化有助于提升性能。当项目转向DevOps模式后,这种区分开始变得模糊。只有全面掌握领域内的知识,才能让你的作品更具艺术气息。

……



主编推荐

Java性能优化越来越难。曾经,通过引入即时编译器,能实现8倍的性能飞跃。而今,你可能会有疑问:Java性能还有多大的优化空间?本书直面这一问题,证明对于工程师而言,仍有很多工作可做! 1.业内老牌工程师编著,资历深厚眼光毒辣 本书作者从事Oracle云平台软件的性能优化工作。在加入Oracle之前,他是Sun公司的Java布道师,并在2001年加入Java性能工程小组。作为业内深耕多年的老牌工程师,他将自己多年的JAVA编程经验整合在书中,透彻解释了JVM和Java平台特性对应用程序性能的影响。 2.拒绝“治标不治本” 本书帮助你针对Java 8和Java 11的性能优化措施、工具和方法,从根本上理解应用程序性能欠佳的原因,并熟练地运用恰当的标志提升性能,随书附赠JVM调优标志速查表,含80余个常用调优标志 ,让你不再盲目测试数以百计的Java标志效果。 3.更新内容,更新体验 本书相对于前书而言,专注于更加成熟的Java 8和Java 11,主要更新内容包括Java平台新特性(新型微基准测试工具、新的即时编译器、新的性能工具等)、Java 11新特性(紧凑字符串和字符串连接的增强等),也涉及到了GI垃圾回收器和Java飞行记录器,以及Java在容器化环境中运行方式的变化。 4.实用代码资源随书赠 本书附赠示例代码资源,更将新的术语与重点强调内容黑体划重点,不同代码以不同的字体排版展示,一目了然方便区分,阅读学习更简单。 本书内容要点: * 理解Java平台特性和编译器如何影响性能 * 掌握Java垃圾回收机制 * 通过遵循4项原则来优化性能测试结果 * 使用JDK等工具了解Java应用程序的性能情况 * 通过编程实践来尽量降低垃圾回收器的不良影响 * 解决Java API的各种性能难题 * 改善数据库应用程序的性能



精彩内容

本书从JVM和Java API两个方面,深入地介绍了Java 8和Java 11等新的Java长期支持版本中影响性能的因素。本书先从Java应用程序的通用方法、基准测试的缺陷、性能监控工具等方面,分析了如何通过JVM的配置方式影响程序的性能;接着从即时编译、垃圾回收、堆内存与原生内存很好实践、线程与同步的性能等方面,分析了常见的优化方向及其特性。第2版专注于更加成熟的Java 8和Java 11,主要的更新内容涉及G1垃圾回收器和Java飞行记录器,以及Java在容器化环境下的性能变化。 本书面向关注性能的Java工程师,尤其是想了解JVM和Java API的各个方面如何影响性能的开发人员。



媒体评论

"奥克斯在书中给出了十分清晰的解释,这得益于他在Oracle公司和Sun公司的经历,以及他对JVM内部机制的深刻理解。我强烈推荐中不错Java程序员阅读这本书。" --Andrew Binstock Java Magazine总编 "这本书无疑是既通透又实用的JVM性能优化读物。如果你正受困于怪异的系统行为,或者正设法解决内存泄漏问题和垃圾回收问题,那么这本书能够帮你拨云见日。我将它推荐给每一位与JVM打交道的工程师。" --Rod Hilton Java工程师 "与第1版不同,奥克斯在这本书中涵盖的是Java 8和Java 11等成熟版本,深入讲述了性能测试方法和工具、JIT、垃圾回收算法与实践,以及线程同步等性能调优领域的重要问题,具有很大的参考价值。党老师以很快的速度将原著精华引荐给国内的工程师,这是技术书翻译的一次性能调优。这本书是目前Java性能调优领域的参考书,推荐给大家。" --柳飞 《Java性能非常不错指南》第1版译者 "随着云计算和微服务大行其道,现代Java程序需要适配的计算环境日益多样化。如何在云时代充分发挥Java的性能优势是所有Java程序员都必然要面对的挑战。与此同时,Java垃圾回收技术也逐渐成熟,Java 1.3.1之前仅支持Serial GC,逐渐发展出了Parallel GC和CMS GC,在Java 8中还是实验特性的G1也在Java 11中正式切换成了缺省的生产特性。新的垃圾回收机制还在不断演进,譬如ZGC、Shenandoah等。我们可利用的Java性能分析工具箱更加丰富,譬



—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP