万本电子书0元读

万本电子书0元读

顶部广告

Java性能权威指南(第2版)电子书

Java性能优化越来越难。曾经,通过引即时编译器,能实现8倍的性能飞跃。而今,你可能会有疑问:Java性能还有多大的优化空间?本书直面这一问题,证明对于工程师而言,仍有很多工作可做! 1.业内老牌工程师编著,资历深厚眼光毒辣 本书作者从事Oracle云平台软件的性能优化工作。在加Oracle之前,他是Sun公司的Java布道师,并在2001年加Java性能工程小组。作为业内深耕多年的老牌工程师,他将自己多年的JAVA编程经验整合在书中,透彻解释了JVM和Java平台特性对应用程序性能的影响。

售       价:¥

纸质售价:¥123.30购买纸书

214人正在读 | 0人评论 7.3

作       者:[美] 斯科特·奥克斯(Scott Oaks) 著

出  版  社:人民邮电出版社有限公司

出版时间:2022-04-01

字       数:34.8万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(1条)
  • 读书简介
  • 目录
  • 累计评论(1条)
本书从JVM和Java API两个方面,深地介绍了Java 8和Java 11等新的Java长期支持版本中影响性能的因素。本书先从Java应用程序的通用方法、基准测试的缺陷、性能监控工具等方面,分析了如何通过JVM的配置方式影响程序的性能;着从即时编译、垃圾回收、堆内存与原生内存实践、线程与同步的性能等方面,分析了常见的优化方向及其特性。第2版专注于更加成熟的Java 8和Java 11,主要的更新内容涉及G1垃圾回收器和Java飞行记录器,以及Java在容器化环境下的性能变化。<br/>【推荐语】<br/>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的各种性能难题 * 改善数据库应用程序的性能<br/>【作者】<br/>【作者简介】 斯科特·奥克斯(Scott Oaks) Oracle公司架构师,从事Oracle云平台软件的性能优化工作。在加Oracle之前,他是Sun公司的Java布道师,并在2001年加Java性能工程小组,专注于Java的性能优化工作。除了本书,他还著有多部涉及Java线程、Java安全等方面的著作。 【译者简介】 党文亮 沉浸Java相关领域多年,目前在华为云专注于性能诊断平台和OS管理系统的研发,有大量从0到1的项目实践经验,在逆向、性能、算法等方面都有一定的积累。<br/>
目录展开

版权声明

O'Reilly Media, Inc. 介绍

业界评论

本书赞誉

前言

读者对象

第 2 版新增内容

排版约定

使用代码示例

O'Reilly 在线学习平台(O'Reilly Online Learning)

联系我们

致谢

更多信息

第 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 垃圾回收器

优化 G1 GC

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.8 小结

第 10 章 Java 服务器

10.1 Java NIO 概览

10.2 服务器容器

10.2.1 优化服务器线程池

10.2.2 异步 REST 服务器

10.3 异步出站调用

异步 HTTP

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 原生接口

12.6 异常

12.7 日志

12.8 Java 集合 API

12.8.1 同步和非同步

12.8.2 设置集合大小

12.8.3 集合与内存效率

12.9 Lambda 和匿名类

12.10 流和过滤器的性能

延迟遍历

12.11 对象序列化

12.11.1 瞬时字段

12.11.2 覆盖默认的序列化

12.11.3 压缩序列化数据

12.11.4 跟踪重复对象

12.12 小结

附录 调优标志总结

关于作者

关于封面

看完了

累计评论(1条) 1个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部