当前位置:当前位置:主页 > 计算机电子书 > Java > Java指南 pdf电子书
Java性能权威指南(第2版)

Java性能权威指南(第2版) PDF 中文高清版

  • 更新:2022-09-06
  • 大小:72.6 MB
  • 类别:Java指南
  • 作者:斯科特·奥克斯(Scott、Oaks)
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 学习心得
  • 相关内容

Java性能权威指南(第2版)》是由人民邮电出版社出版的一本关于Java指南方面的书籍,作者是斯科特·奥克斯(Scott、Oaks),主要介绍了关于Java、Java指南方面的知识内容,目前在Java指南类书籍综合评分为:7.2分。

书籍介绍

内容简介

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

目录

  • 前言 xiii
  • 第 1章导论 1
  • 1.1概述 2
  • 1.2平台和约定 2
  • 1.2.1Java平台 2
  • 1.2.2硬件平台 4
  • 1.3全面的性能 6
  • 1.3.1写出更好的算法 6
  • 1.3.2写更少的代码 7
  • 1.3.3过早优化 8
  • 1.3.4其他:数据库永远是瓶颈 9
  • 1.3.5常见优化 9
  • 1.4小结 10
  • 第 2章性能测试方法 11
  • 2.1测试真实的应用程序 11
  • 2.1.1微基准测试 11
  • 2.1.2宏基准测试 15
  • 2.1.3介基准测试 16
  • 2.2理解吞吐量、批处理时间和响应时间 17
  • 2.2.1测量批处理时间17
  • 2.2.2测量吞吐量18
  • 2.2.3测量响应时间 19
  • 2.3理解可变性22
  • 2.4早测试、常测试 25
  • 2.5基准测试示例 27
  • 2.5.1Java 微基准测试工具 27
  • 2.5.2常用代码示例 34
  • 2.6小结 36
  • 第3 章Java 性能工具箱 38
  • 3.1操作系统工具和分析 38
  • 3.1.1CPU 使用率 39
  • 3.1.2CPU 运行队列 41
  • 3.1.3磁盘使用率 42
  • 3.1.4网络使用率 44
  • 3.2Java 监控工具 45
  • 3.2.1基本的VM 信息 46
  • 3.2.2线程信息 48
  • 3.2.3类信息 49
  • 3.2.4实时GC 分析 49
  • 3.2.5堆转储后期处理 49
  • 3.3性能分析工具 49
  • 3.3.1采样分析器 50
  • 3.3.2探查分析器 53
  • 3.3.3阻塞方法和线程时间线 54
  • 3.3.4原生分析器 55
  • 3.4JFR 57
  • 3.4.1Java Mission Control 57
  • 3.4.2JFR 概览 58
  • 3.4.3开启JFR 64
  • 3.4.4选择JFR 事件 67
  • 3.5小结 69
  • 第4 章使用即时编译器 70
  • 4.1即时编译器:概览 70
  • 4.2分层编译 73
  • 4.3常用的编译器标志 74
  • 4.3.1优化代码缓存 74
  • 4.3.2检查编译过程 75
  • 4.3.3分层编译级别 78
  • 4.3.4逆优化 79
  • 4.4高级编译器标志 82
  • 4.4.1编译阈值 82
  • 4.4.2编译线程 83
  • 4.4.3内联 85
  • 4.4.4逃逸分析 86
  • 4.4.5CPU 相关代码 87
  • 4.5分层编译的权衡 88
  • 4.6GraalVM 89
  • 4.7预编译 90
  • 4.7.1提前编译 90
  • 4.7.2GraalVM 原生编译 92
  • 4.8小结 93
  • 第5 章垃圾回收简介 95
  • 5.1垃圾回收概览 95
  • 5.1.1分代垃圾回收器97
  • 5.1.2GC 算法99
  • 5.1.3选择GC 算法101
  • 5.2GC 优化基础108
  • 5.2.1调整堆的大小 108
  • 5.2.2调整分代大小 110
  • 5.2.3调整元空间大小 112
  • 5.2.4控制并行113
  • 5.3GC 工具114
  • 5.3.1在JDK 8 中开启GC 日志 114
  • 5.3.2在JDK 11 中开启GC 日志 115
  • 5.4小结 118
  • 第6 章垃圾回收算法 119
  • 6.1理解Throughput 回收器 119
  • 6.2理解G1 垃圾回收器 125
  • 6.3理解CMS 回收器 136
  • 6.4高级优化 143
  • 6.4.1晋升和Survivor 空间143
  • 6.4.2分配大对象 146
  • 6.4.3AggressiveHeap 标志 152
  • 6.4.4完全掌控堆的大小 153
  • 6.5实验性GC 算法 154
  • 6.5.1并发压缩:ZGC 和Shenandoah 154
  • 6.5.2无回收:Epsilon GC 156
  • 6.6小结157
  • 第7 章堆内存实践 159
  • 7.1堆分析 159
  • 7.1.1堆直方图160
  • 7.1.2堆转储161
  • 7.1.3内存溢出错误 164
  • 7.2减少内存使用 168
  • 7.2.1减小对象大小 169
  • 7.2.2使用延迟初始化171
  • 7.2.3使用不可变对象和标准化对象 175
  • 7.3对象生命周期管理 176
  • 7.3.1对象重用177
  • 7.3.2软引用、弱引用和其他引用181
  • 7.3.3压缩的普通对象指针193
  • 7.4小结194
  • 第8 章原生内存实践195
  • 8.1内存占用195
  • 8.1.1测量内存占用 196
  • 8.1.2小化内存占用197
  • 8.1.3原生内存跟踪 197
  • 8.1.4共享库原生内存201
  • 8.2针对操作系统的JVM 优化 204
  • 8.3小结208
  • 第9 章线程和同步性能 209
  • 9.1线程和硬件209
  • 9.2线程池和ThreadPoolExecutor 210
  • 9.2.1设置线程数210
  • 9.2.2设置小线程数213
  • 9.2.3线程池任务大小215
  • 9.2.4设置ThreadPoolExecutor 的大小215
  • 9.3ForkJoinPool.217
  • 9.3.1工作窃取 221
  • 9.3.2自动并行化 223
  • 9.4线程同步 224
  • 9.4.1同步的代价 225
  • 9.4.2避免同步 228
  • 9.4.3伪共享 230
  • 9.5JVM 线程优化 233
  • 9.5.1优化线程栈大小 234
  • 9.5.2偏向锁234
  • 9.5.3线程优先级 235
  • 9.6监控线程和锁 235
  • 9.6.1查看线程235
  • 9.6.2查看阻塞线程 236
  • 9.7小结239
  • 第 10 章Java 服务器 240
  • 10.1Java NIO 概览 240
  • 10.2服务器容器 242
  • 10.2.1优化服务器线程池 242
  • 10.2.2异步Rest 服务器 243
  • 10.3异步出站调用246
  • 10.4JSON 处理251
  • 10.4.1解析和编组概览 252
  • 10.4.2JSON 对象 253
  • 10.4.3JSON 解析 254
  • 10.5小结 256
  • 第 11 章数据库性能实践 257
  • 11.1示例数据库 258
  • 11.2JDBC 258
  • 11.2.1JDBC 驱动 258
  • 11.2.2JDBC 连接池 260
  • 11.2.3预处理语句和语句池 261
  • 11.2.4事务 262
  • 11.2.5结果集处理269
  • 11.3JPA270
  • 11.3.1优化JPA 写 271
  • 11.3.2优化JPA 读 272
  • 11.3.3JPA 缓存 275
  • 11.4Spring Data280
  • 11.5小结281
  • 第 12 章Java SE API 技巧282
  • 12.1字符串 282
  • 12.1.1压缩字符串 282
  • 12.1.2重复字符串和字符串保留283
  • 12.1.3字符串连接 288
  • 12.2缓冲I/O 291
  • 12.3类加载 293
  • 12.4随机数 296
  • 12.5Java 原生接口298
  • 12.6异常300
  • 12.7日志303
  • 12.8Java 集合API304
  • 12.8.1同步和非同步305
  • 12.8.2设置集合大小306
  • 12.8.3集合与内存效率 307
  • 12.9Lambda 和匿名类 308
  • 12.10流和过滤器的性能310
  • 12.11对象序列化 312
  • 12.11.1瞬时字段312
  • 12.11.2覆盖默认的序列化313
  • 12.11.3压缩序列化数据 315
  • 12.11.4跟踪重复对象317
  • 12.12小结 319
  • 附录调优标志总结 321

资源获取

相关资源

网友留言