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

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

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

java语言程序设计,从入门到实践基础教程,涵盖Java 8和Java 11等常用版本,Java性能团队前核心成员心血之作。

内容简介

本书对Java 8和Java 11等新的Java长期支持版本中影响性能的因素展开了全面、深入的介绍,讲解传统上影响应用程序性能的JVM特征,包括即时编译器、垃圾回收等。内容包括用G1垃圾回收器最大化应用程序的吞吐量;使用Java飞行记录器查看性能细节,而不必借助专业的分析工具;堆内存与原生内存实践;线程与同步的性能,以及数据库性能实践等。

作者简介

作者斯科特·奥克斯(Scott Oaks),Oracle公司架构师,从事Oracle云平台软件的性能优化工作。在加入Oracle之前,他是Sun公司的Java布道师,并在2001年加入Java性能工程小组,专注于Java的性能优化工作。

章节目录

版权信息

O'Reilly Media, Inc. 介绍

业界评论

本书赞誉

前言

读者对象

第2版新增内容

排版约定

使用代码示例

联系我们

致谢

第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 小结

附录 调优标志总结

关于作者

关于封面

看完了

版权声明

Java性能权威指南(第2版)是2022年由人民邮电出版社出版,作者[美] 斯科特·奥克斯。

得书感谢您对《Java性能权威指南(第2版)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
Java EE核心框架实战(第2版) 电子书
本书宗旨 提高读者学习Java EE的效率,增强其项目实战能力。本书摒弃了软件公司中不常用或不实用的技术,而是采用近200个开发案例,为读者讲解了开发商业软件的知识,帮助读者进行“精要”式的学习,汲取Java EE的思想,正确地进行项目实战。 本书特色 不留遗漏——覆盖主流Java EE轻量级框架 直击要害——实战化案例精准定位开发细节 学以致用——精要式项目确保开发/ 学习不脱节 潜移默化——研磨式知识讲解参透技术要点 提升效率——垂直式技术精解不绕弯路 循序提升——渐进式知识点统排确保连贯 以点概面——解决方案式项目,知识独立却又体系完整 成功案例——全面经过项目过程锤炼,提升学习/ 开发效率
Java从入门到精通(第4版) 电子书
本书以零基础讲解为宗旨,用实例引导读者学习,深入浅出地介绍了Java的相关知识和实战技巧。
软件性能测试与LoadRunner实战教程(第2版) 电子书
随着计算机行业的蓬勃发展,软件用户关注的不仅仅是功能实现的正确性,系统的性能表现也是用户关注的重点,而性能测试是测试系统的主要手段,它是软件测试的重中之重。另外,性能测试通常和应用程序、操作系统、数据库服务器、中间件服务器、网络设备等有关,如何快速、有效地定位并解决性能问题,无疑是性能测试人员面临的重要任务。为了帮助测试人员迅速有效掌握软件测试基础、性能测试技术及性能测试工具的实战应用,作者精心编写了这本书。 《软件性能测试与LoadRunner实战教程 第2版》讲述了软件测试的分类以及测试的流程等,还重点讲述了性能测试技术和LoadRunner 11.0与12.60工具应用的实战知识。 书中将实践中经常遇到的问题进行总结汇总成几十个解决方案,详细的项目案例,完整的性能测试方案、计划、用例设计、性能总结及相关交付文档,为读者做好实际项目提供参考和方向引导。本书还为读者提供了: 1,新的测试工具LoadRunner技术解读。 2,丰富的案例介绍,帮助读者学习。 3,丰富的练习题与面试题型,为读者日后走上工作岗位打下良好基础。
精通软件性能测试与LoadRunner实战(第2版) 电子书
新的测试工具LoadRunner技术解读。 丰富的案例介绍,帮助读者学以致用。 丰富的练习题与面试题型,为读者学练结合打基础。 内容从测试项目实战需求出发,讲述了软件测试的分类以及测试的流程 还重点讲述了性能测试技术和LoadRunner 11.0与12.60工具应用的实战知识 基于实践中经常遇到的问题汇总了几十个解决方案 详细的项目案例、完整的性能测试方案、计划、用例设计、性能总结及相关交付文档为您做好实际项目测试提供了很好的帮助 适合测试初学者、测试人员、测试经理以及开发人员学习,也适合作为大专院校相关专业师生的学习用书,以及培训机构的教材。
Java开发从入门到精通(第2版) 电子书
Java10全面解析:技术解惑与实例演练