Java 性能权威指南 PDF 文档

发布于 2023-12-31 11:53:17 字数 4133 浏览 43 评论 0

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

本书适合需要了解 JVM 调优的 Java 新手以及想要最优化应用性能的成熟开发人员阅读。

目录
推荐序
前言
第 1 章 导论
1.1 概述
1.2 平台版本约定
1.3 全面的性能调优
1.3.1 编写更好的算法
1.3.2 编写更少的代码
1.3.3 老调重弹的过早优化
1.3.4 其他:数据库很可能就是瓶颈
1.3.5 常见的优化
1.4 小结
第 2 章 性能测试方法
2.1 原则 1:测试真实应用
2.1.1 微基准测试
2.1.2 宏基准测试
2.1.3 介基准测试
2.1.4 代码示例
2.2 原则 2:理解批处理流逝时间、吞吐量和响应时间
2.2.1 批处理流逝时间
2.2.2 吞吐量测试
2.2.3 响应时间测试
2.3 原则 3:用统计方法应对性能的变化
2.4 原则 4:尽早频繁测试
2.5 小结
第 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 Java 任务控制
3.4.1 Java 飞行记录器
3.4.2 开启 JFR
3.4.3 选择 JFR 事件
3.5 小结
第 4 章 JIT 编译器
4.1 JIT 编译器:概览
4.2 调优入门:选择编译器类型(Client、Server 或二者同用)
4.2.1 优化启动
4.2.2 优化批处理
4.2.3 优化长时间运行的应用
4.3 Java 和 JIT 编译器版本
4.4 编译器中级调优
4.4.1 调优代码缓存
4.4.2 编译阈值
4.4.3 检测编译过程
4.5 高级编译器调优
4.5.1 编译线程
4.5.2 内联
4.5.3 逃逸分析
4.6 逆优化
4.6.1 代码被丢弃
4.6.2 逆优化僵尸代码
4.7 分层编译级别
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.2.5 自适应调整
5.3 垃圾回收工具
5.4 小结
第 6 章 垃圾收集算法
6.1 理解 Throughput 收集器
6.2 理解 CMS 收集器
6.2.1 针对并发模式失效的调优
6.2.2 CMS 收集器的永久代调优
6.2.3 增量式 CMS 垃圾收集
6.3 理解 G1 垃圾收集器
6.4 高级调优
6.4.1 晋升及 Survivor 空间
6.4.2 分配大对象
6.4.3 AggressiveHeap 标志
6.4.4 全盘掌控堆空间的大小
6.5 小结
第 7 章 堆内存最佳实践
7.1 堆分析
7.1.1 堆直方图
7.1.2 堆转储
7.1.3 内存溢出错误
7.2 减少内存使用
7.2.1 减少对象大小
7.2.2 延迟初始化
7.2.3 不可变对象和标准化对象
7.2.4 字符串的保留
7.3 对象生命周期管理
7.3.1 对象重用
7.3.2 弱引用、软引用与其他引用
7.4 小结
第 8 章 原生内存最佳实践
8.1 内存占用
8.1.1 测量内存占用
8.1.2 内存占用最小化
8.1.3 原生 NIO 缓冲区
8.1.4 原生内存跟踪
8.2 针对不同操作系统优化 JVM
8.2.1 大页
8.2.2 压缩的 oop
8.3 小结
第 9 章 线程与同步的性能
9.1 线程池与 ThreadPoolExecutor
9.1.1 设置最大线程数
9.1.2 设置最小线程数
9.1.3 线程池任务大小
9.1.4 设置 ThreadPoolExecutor 的大小
9.2 ForkJoinPool
9.3 线程同步
9.3.1 同步的代价
9.3.2 避免同步
9.3.3 伪共享
9.4 JVM 线程调优
9.4.1 调节线程栈大小
9.4.2 偏向锁
9.4.3 自旋锁
9.4.4 线程优先级
9.5 监控线程与锁
9.5.1 查看线程
9.5.2 查看阻塞线程
9.6 小结
第 10 章 Java EE 性能调优
10.1 Web 容器的基本性能
10.2 线程池
10.3 EJB 会话 Bean
10.3.1 调优 EJB 对象池
10.3.2 调优 EJB 缓存
10.3.3 本地和远程实例
10.4 XML 和 JSON 处理
10.4.1 数据大小
10.4.2 解析和编组概述
10.4.3 选择解析器
10.4.4 XML 验证
10.4.5 文档模型
10.4.6 Java 对象模型
10.5 对象序列化
10.5.1 transient 字段
10.5.2 覆盖默认的序列化
10.5.3 压缩序列化数据
10.5.4 追踪对象复制
10.6 Java EE 网络 API
10.7 小结
第 11 章 数据库性能的最佳实践
11.1 JDBC
11.1.1 JDBC 驱动程序
11.1.2 预处理语句和语句池
11.1.3 JDBC 连接池
11.1.4 事务
11.1.5 结果集的处理
11.2 JPA
11.2.1 事务处理
11.2.2 对 JPA 的写性能进行优化
11.2.3 对 JPA 的读性能进行优化
11.2.4 JPA 缓存
11.2.5 JPA 的只读实体
11.3 小结
第 12 章 Java SE API 技巧
12.1 缓冲式 I/O
12.2 类加载
12.3 随机数
12.4 Java 原生接口
12.5 异常
12.6 字符串的性能
12.7 日志
12.8 Java 集合类 API
12.8.1 同步还是非同步
12.8.2 设定集合的大小
12.8.3 集合与内存使用效率
12.9 AggressiveOpts 标志
12.9.1 替代实现
12.9.2 其他标志
12.10 Lambda 表达式和匿名类
12.11 流和过滤器的性能
12.12 小结
附录 A 性能调优标志摘要

下载地址:https://www.wenjiangs.com/wp-content/uploads/2023/12/PHH3XtMfZm9gdp5v.zip

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

漫雪独思

文章 0 评论 0

垂暮老矣

文章 0 评论 0

鹊巢

文章 0 评论 0

萌酱

文章 0 评论 0

雨说

文章 0 评论 0

冰葑

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文