Java性能权威指南

Java性能权威指南
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] (Oaks S.) , , ,
2016-03
版次: 1
ISBN: 9787115413765
定价: 79.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 312页
字数: 487千字
正文语种: 简体中文
原版书名: Java Performance: The Definitive Guide
153人买过
  •   本书对Java 7和Java 8中影响性能的因素展开了全面深入的介绍,讲解传统上影响应用性能的JVM特征,包括即时编译器、垃圾收集、语言特征等。内容包括:用G1垃圾收集器应用的吞吐量;使用Java飞行记录器查看性能细节,而不必借助专业的分析工具;堆内存与原生内存实践;线程与同步的性能,以及数据库性能实践等。   Scott Oaks是Oracle公司的一位架构师,专注研究Oracle中间件软件的性能。加入Oracle之前,他曾于Sun Microsystem公司任职多年,在多个技术领域都有建树,包括SunOS的内核、网络程序设计、Windows系统的远程方法调用(RPC)以及OPEN LOOK虚拟窗口管理器。1996年,Scott成为Sun公司的Java布道师,并于2001年加入Sun公司的Java性能小组——从那时起他就一直专注于Java的性能提升。此外,Scott也在O'Reilly出版社出版了多部书籍,包括Java Security、Java Threads、JXTA in a Nutshell和Jini in a Nutshell。 推荐序   xi
    前言   xii
    第1章 导论   1
    1.1 概述   2
    1.2 平台版本约定   2
    1.3 全面的性能调优   4
    1.3.1 编写更好的算法   4
    1.3.2 编写更少的代码   4
    1.3.3 老调重弹的过早优化   5
    1.3.4 其他:数据库很可能就是瓶颈   6
    1.3.5 常见的优化   7
    1.4 小结   8
    第2章 性能测试方法   9
    2.1 原则1:测试真实应用   9
    2.1.1 微基准测试   9
    2.1.2 宏基准测试   13
    2.1.3 介基准测试   15
    2.1.4 代码示例   16
    2.2 原则2:理解批处理流逝时间、吞吐量和响应时间   19
    2.2.1 批处理流逝时间   19
    2.2.2 吞吐量测试   20
    2.2.3 响应时间测试   20
    2.3 原则3:用统计方法应对性能的变化   23
    2.4 原则4:尽早频繁测试   26
    2.5 小结   28
    第3章 Java性能调优工具箱   29
    3.1 操作系统的工具和分析   29
    3.1.1 CPU使用率   29
    3.1.2 CPU运行队列   32
    3.1.3 磁盘使用率   33
    3.1.4 网络使用率   34
    3.2 Java监控工具   35
    3.2.1 基本的VM信息   36
    3.2.2 线程信息   39
    3.2.3 类信息   39
    3.2.4 实时GC分析   39
    3.2.5 事后堆转储   39
    3.3 性能分析工具   39
    3.3.1 采样分析器   40
    3.3.2 探查分析器   41
    3.3.3 阻塞方法和线程时间线   42
    3.3.4 本地分析器   44
    3.4 Java任务控制   45
    3.4.1 Java飞行记录器   46
    3.4.2 开启JFR   52
    3.4.3 选择JFR事件   54
    3.5 小结   56
    第4章 JIT编译器   58
    4.1 JIT 编译器:概览  58
    4.2 调优入门:选择编译器类型(Client、Server 或二者同用)   61
    4.2.1 优化启动   62
    4.2.2 优化批处理   63
    4.2.3 优化长时间运行的应用   64
    4.3 Java和JIT编译器版本   64
    4.4 编译器中级调优   67
    4.4.1 调优代码缓存   67
    4.4.2 编译阈值   68
    4.4.3 检测编译过程   70
    4.5 高级编译器调优   73
    4.5.1 编译线程   73
    4.5.2 内联   74
    4.5.3 逃逸分析   75
    4.6 逆优化   76
    4.6.1 代码被丢弃   77
    4.6.2 逆优化僵尸代码   78
    4.7 分层编译级别   79
    4.8 小结   80
    第5章 垃圾收集入门   81
    5.1 垃圾收集概述   81
    5.1.1 分代垃圾收集器   83
    5.1.2 GC算法   84
    5.1.3 选择GC算法   87
    5.2 GC调优基础   92
    5.2.1 调整堆的大小   92
    5.2.2 代空间的调整   95
    5.2.3 永久代和元空间的调整   96
    5.2.4 控制并发   97
    5.2.5 自适应调整   98
    5.3 垃圾回收工具   99
    5.4 小结   102
    第6章 垃圾收集算法   103
    6.1 理解Throughput收集器   103
    6.2 理解CMS收集器   109
    6.2.1 针对并发模式失效的调优   113
    6.2.2 CMS收集器的永久代调优   116
    6.2.3 增量式CMS垃圾收集   117
    6.3 理解G1垃圾收集器   118
    6.4 高级调优   126
    6.4.1 晋升及Survivor空间   126
    6.4.2 分配大对象   129
    6.4.3 AggressiveHeap标志   136
    6.4.4 全盘掌控堆空间的大小   137
    6.5 小结   138
    第7章 堆内存最佳实践   140
    7.1 堆分析   140
    7.1.1 堆直方图   141
    7.1.2 堆转储   142
    7.1.3 内存溢出错误   146
    7.2 减少内存使用   149
    7.2.1 减少对象大小   149
    7.2.2 延迟初始化   152
    7.2.3 不可变对象和标准化对象   156
    7.2.4 字符串的保留   157
    7.3 对象生命周期管理   160
    7.3.1 对象重用   160
    7.3.2 弱引用、软引用与其他引用   165
    7.4 小结   175
    第8章 原生内存最佳实践   176
    8.1 内存占用   176
    8.1.1 测量内存占用   177
    8.1.2 内存占用最小化   178
    8.1.3 原生NIO缓冲区   178
    8.1.4 原生内存跟踪   179
    8.2 针对不同操作系统优化JVM   182
    8.2.1 大页   182
    8.2.2 压缩的oop   185
    8.3 小结   187
    第9章 线程与同步的性能   188
    9.1 线程池与ThreadPoolExecutor   188
    9.1.1 设置最大线程数   189
    9.1.2 设置最小线程数   192
    9.1.3 线程池任务大小   193
    9.1.4 设置ThreadPoolExecutor的大小   193
    9.2 ForkJoinPool   195
    9.3 线程同步   201
    9.3.1 同步的代价   202
    9.3.2 避免同步   205
    9.3.3 伪共享   208
    9.4 JVM线程调优   211
    9.4.1 调节线程栈大小   211
    9.4.2 偏向锁   212
    9.4.3 自旋锁   212
    9.4.4 线程优先级   213
    9.5 监控线程与锁   213
    9.5.1 查看线程   214
    9.5.2 查看阻塞线程   214
    9.6 小结   217
    第10章 Java EE性能调优   218
    10.1 Web容器的基本性能   218
    10.2 线程池   222
    10.3 EJB会话Bean   223
    10.3.1 调优EJB对象池   223
    10.3.2 调优EJB缓存   225
    10.3.3 本地和远程实例   226
    10.4 XML和JSON处理   227
    10.4.1 数据大小   227
    10.4.2 解析和编组概述   229
    10.4.3 选择解析器   230
    10.4.4 XML验证   235
    10.4.5 文档模型   237
    10.4.6 Java对象模型   240
    10.5 对象序列化   241
    10.5.1 transient字段   241
    10.5.2 覆盖默认的序列化   241
    10.5.3 压缩序列化数据   244
    10.5.4 追踪对象复制   246
    10.6 Java EE网络API   248
    10.7 小结   250
    第11章 数据库性能的最佳实践   251
    11.1 JDBC   251
    11.1.1 JDBC驱动程序   252
    11.1.2 预处理语句和语句池   253
    11.1.3 JDBC连接池   255
    11.1.4 事务   256
    11.1.5 结果集的处理   262
    11.2 JPA   264
    11.2.1 事务处理   264
    11.2.2 对JPA的写性能进行优化   267
    11.2.3 对JPA的读性能进行优化   268
    11.2.4 JPA缓存   271
    11.2.5 JPA的只读实体   276
    11.3 小结   277
    第12章 Java SE API技巧   278
    12.1 缓冲式I/O  278
    12.2 类加载   280
    12.3 随机数   284
    12.4 Java原生接口   285
    12.5 异常   287
    12.6 字符串的性能   290
    12.7 日志   291
    12.8 Java集合类API   292
    12.8.1 同步还是非同步   293
    12.8.2 设定集合的大小   294
    12.8.3 集合与内存使用效率   295
    12.9 AggressiveOpts标志   296
    12.9.1 替代实现   296
    12.9.2 其他标志   297
    12.10 Lambda表达式和匿名类   297
    12.11 流和过滤器的性能   300
    12.12 小结   302
    附录A 性能调优标志摘要   303
    作者简介   312
    关于封面   312
  • 内容简介:
      本书对Java 7和Java 8中影响性能的因素展开了全面深入的介绍,讲解传统上影响应用性能的JVM特征,包括即时编译器、垃圾收集、语言特征等。内容包括:用G1垃圾收集器应用的吞吐量;使用Java飞行记录器查看性能细节,而不必借助专业的分析工具;堆内存与原生内存实践;线程与同步的性能,以及数据库性能实践等。
  • 作者简介:
      Scott Oaks是Oracle公司的一位架构师,专注研究Oracle中间件软件的性能。加入Oracle之前,他曾于Sun Microsystem公司任职多年,在多个技术领域都有建树,包括SunOS的内核、网络程序设计、Windows系统的远程方法调用(RPC)以及OPEN LOOK虚拟窗口管理器。1996年,Scott成为Sun公司的Java布道师,并于2001年加入Sun公司的Java性能小组——从那时起他就一直专注于Java的性能提升。此外,Scott也在O'Reilly出版社出版了多部书籍,包括Java Security、Java Threads、JXTA in a Nutshell和Jini in a Nutshell。
  • 目录:
    推荐序   xi
    前言   xii
    第1章 导论   1
    1.1 概述   2
    1.2 平台版本约定   2
    1.3 全面的性能调优   4
    1.3.1 编写更好的算法   4
    1.3.2 编写更少的代码   4
    1.3.3 老调重弹的过早优化   5
    1.3.4 其他:数据库很可能就是瓶颈   6
    1.3.5 常见的优化   7
    1.4 小结   8
    第2章 性能测试方法   9
    2.1 原则1:测试真实应用   9
    2.1.1 微基准测试   9
    2.1.2 宏基准测试   13
    2.1.3 介基准测试   15
    2.1.4 代码示例   16
    2.2 原则2:理解批处理流逝时间、吞吐量和响应时间   19
    2.2.1 批处理流逝时间   19
    2.2.2 吞吐量测试   20
    2.2.3 响应时间测试   20
    2.3 原则3:用统计方法应对性能的变化   23
    2.4 原则4:尽早频繁测试   26
    2.5 小结   28
    第3章 Java性能调优工具箱   29
    3.1 操作系统的工具和分析   29
    3.1.1 CPU使用率   29
    3.1.2 CPU运行队列   32
    3.1.3 磁盘使用率   33
    3.1.4 网络使用率   34
    3.2 Java监控工具   35
    3.2.1 基本的VM信息   36
    3.2.2 线程信息   39
    3.2.3 类信息   39
    3.2.4 实时GC分析   39
    3.2.5 事后堆转储   39
    3.3 性能分析工具   39
    3.3.1 采样分析器   40
    3.3.2 探查分析器   41
    3.3.3 阻塞方法和线程时间线   42
    3.3.4 本地分析器   44
    3.4 Java任务控制   45
    3.4.1 Java飞行记录器   46
    3.4.2 开启JFR   52
    3.4.3 选择JFR事件   54
    3.5 小结   56
    第4章 JIT编译器   58
    4.1 JIT 编译器:概览  58
    4.2 调优入门:选择编译器类型(Client、Server 或二者同用)   61
    4.2.1 优化启动   62
    4.2.2 优化批处理   63
    4.2.3 优化长时间运行的应用   64
    4.3 Java和JIT编译器版本   64
    4.4 编译器中级调优   67
    4.4.1 调优代码缓存   67
    4.4.2 编译阈值   68
    4.4.3 检测编译过程   70
    4.5 高级编译器调优   73
    4.5.1 编译线程   73
    4.5.2 内联   74
    4.5.3 逃逸分析   75
    4.6 逆优化   76
    4.6.1 代码被丢弃   77
    4.6.2 逆优化僵尸代码   78
    4.7 分层编译级别   79
    4.8 小结   80
    第5章 垃圾收集入门   81
    5.1 垃圾收集概述   81
    5.1.1 分代垃圾收集器   83
    5.1.2 GC算法   84
    5.1.3 选择GC算法   87
    5.2 GC调优基础   92
    5.2.1 调整堆的大小   92
    5.2.2 代空间的调整   95
    5.2.3 永久代和元空间的调整   96
    5.2.4 控制并发   97
    5.2.5 自适应调整   98
    5.3 垃圾回收工具   99
    5.4 小结   102
    第6章 垃圾收集算法   103
    6.1 理解Throughput收集器   103
    6.2 理解CMS收集器   109
    6.2.1 针对并发模式失效的调优   113
    6.2.2 CMS收集器的永久代调优   116
    6.2.3 增量式CMS垃圾收集   117
    6.3 理解G1垃圾收集器   118
    6.4 高级调优   126
    6.4.1 晋升及Survivor空间   126
    6.4.2 分配大对象   129
    6.4.3 AggressiveHeap标志   136
    6.4.4 全盘掌控堆空间的大小   137
    6.5 小结   138
    第7章 堆内存最佳实践   140
    7.1 堆分析   140
    7.1.1 堆直方图   141
    7.1.2 堆转储   142
    7.1.3 内存溢出错误   146
    7.2 减少内存使用   149
    7.2.1 减少对象大小   149
    7.2.2 延迟初始化   152
    7.2.3 不可变对象和标准化对象   156
    7.2.4 字符串的保留   157
    7.3 对象生命周期管理   160
    7.3.1 对象重用   160
    7.3.2 弱引用、软引用与其他引用   165
    7.4 小结   175
    第8章 原生内存最佳实践   176
    8.1 内存占用   176
    8.1.1 测量内存占用   177
    8.1.2 内存占用最小化   178
    8.1.3 原生NIO缓冲区   178
    8.1.4 原生内存跟踪   179
    8.2 针对不同操作系统优化JVM   182
    8.2.1 大页   182
    8.2.2 压缩的oop   185
    8.3 小结   187
    第9章 线程与同步的性能   188
    9.1 线程池与ThreadPoolExecutor   188
    9.1.1 设置最大线程数   189
    9.1.2 设置最小线程数   192
    9.1.3 线程池任务大小   193
    9.1.4 设置ThreadPoolExecutor的大小   193
    9.2 ForkJoinPool   195
    9.3 线程同步   201
    9.3.1 同步的代价   202
    9.3.2 避免同步   205
    9.3.3 伪共享   208
    9.4 JVM线程调优   211
    9.4.1 调节线程栈大小   211
    9.4.2 偏向锁   212
    9.4.3 自旋锁   212
    9.4.4 线程优先级   213
    9.5 监控线程与锁   213
    9.5.1 查看线程   214
    9.5.2 查看阻塞线程   214
    9.6 小结   217
    第10章 Java EE性能调优   218
    10.1 Web容器的基本性能   218
    10.2 线程池   222
    10.3 EJB会话Bean   223
    10.3.1 调优EJB对象池   223
    10.3.2 调优EJB缓存   225
    10.3.3 本地和远程实例   226
    10.4 XML和JSON处理   227
    10.4.1 数据大小   227
    10.4.2 解析和编组概述   229
    10.4.3 选择解析器   230
    10.4.4 XML验证   235
    10.4.5 文档模型   237
    10.4.6 Java对象模型   240
    10.5 对象序列化   241
    10.5.1 transient字段   241
    10.5.2 覆盖默认的序列化   241
    10.5.3 压缩序列化数据   244
    10.5.4 追踪对象复制   246
    10.6 Java EE网络API   248
    10.7 小结   250
    第11章 数据库性能的最佳实践   251
    11.1 JDBC   251
    11.1.1 JDBC驱动程序   252
    11.1.2 预处理语句和语句池   253
    11.1.3 JDBC连接池   255
    11.1.4 事务   256
    11.1.5 结果集的处理   262
    11.2 JPA   264
    11.2.1 事务处理   264
    11.2.2 对JPA的写性能进行优化   267
    11.2.3 对JPA的读性能进行优化   268
    11.2.4 JPA缓存   271
    11.2.5 JPA的只读实体   276
    11.3 小结   277
    第12章 Java SE API技巧   278
    12.1 缓冲式I/O  278
    12.2 类加载   280
    12.3 随机数   284
    12.4 Java原生接口   285
    12.5 异常   287
    12.6 字符串的性能   290
    12.7 日志   291
    12.8 Java集合类API   292
    12.8.1 同步还是非同步   293
    12.8.2 设定集合的大小   294
    12.8.3 集合与内存使用效率   295
    12.9 AggressiveOpts标志   296
    12.9.1 替代实现   296
    12.9.2 其他标志   297
    12.10 Lambda表达式和匿名类   297
    12.11 流和过滤器的性能   300
    12.12 小结   302
    附录A 性能调优标志摘要   303
    作者简介   312
    关于封面   312
查看详情
系列丛书 / 更多
Java性能权威指南
机器学习实战
[美]Peter Harrington 著;李锐、李鹏、曲亚东 译
Java性能权威指南
图灵程序设计丛书:Python基础教程
[挪威]Magnus Lie Hetland 著;司维、曾军崴、谭颖华 译
Java性能权威指南
JavaScript高级程序设计(第3版)
[美]Nicholas C.Zakas 著;李松峰、曹力 译
Java性能权威指南
Python编程:从入门到实践
[美]埃里克·马瑟斯(Eric Matthes) 著;袁国忠 译
Java性能权威指南
R语言实战(第2版)
[美]卡巴科弗(Robert I. Kabacoff) 著;王小宁、刘撷芯、黄俊文 译
Java性能权威指南
算法(第4版)
[美]Robert、[美]Kevin Wayne 著;谢路云 译
Java性能权威指南
大数据:互联网大规模数据挖掘与分布式处理
[美]Anand、[美]Jeffrey David Ullman 著;王斌 译
Java性能权威指南
Spark快速大数据分析
[美]卡劳(Holden Karau)、[美]肯维尼斯科(Andy Konwinski)、[美]温德尔(Patrick Wendell)、[加拿大]扎哈里亚(Matei Zaharia) 著;王道远 译
Java性能权威指南
图解HTTP
[日]上野·宣 著;于均良 译
Java性能权威指南
MySQL必知必会
[英]福塔(Ben Forta) 著;刘晓霞、钟鸣 译
Java性能权威指南
算法图解
袁国忠 译
Java性能权威指南
Spring Boot实战
[美]克雷格·沃斯(Craig Walls) 著;丁雪丰 译
相关图书 / 更多
Java性能权威指南
Java研发自测入门与进阶
林宁、魏兆玉
Java性能权威指南
Java语言程序设计(2023年版)全国高等教育自学考试指导委员会
全国高等教育自学考试指导委员会
Java性能权威指南
Java项目开发实战(微视频版)
陈强
Java性能权威指南
Java+OpenCV案例佳作选
姚利民
Java性能权威指南
Java核心编程技术(第4版微课版新世纪应用型高等教育软件专业系列规划教材)
张屹、蔡木生 编
Java性能权威指南
Java Web及其框架技术
陈振兴
Java性能权威指南
JavaScript多线程编程实践
(美)托马斯 亨特二世(Thomas Hunter II),(加拿大)布莱恩 英格利什(Bryan English)
Java性能权威指南
Java开发坑点解析:从根因分析到最佳实践
朱晔
Java性能权威指南
Java面向对象程序设计(题库·微课视频版)
梁胜彬 主编 渠慎明 白晨希 马华蔚 甘志华 程素营 副主编
Java性能权威指南
Java核心技术速学版(第3版)
(美)凯·S.霍斯特曼(Cay S. Horstmann)
Java性能权威指南
Java程序设计(微课版新世纪应用型高等教育计算机类课程规划教材)
李月辉、李慧 编
Java性能权威指南
Java到Kotlin:代码重构指南
(英)邓肯·麦格雷戈(Duncan McGregor)
您可能感兴趣 / 更多
Java性能权威指南
语言恶女:女性如何夺回语言
[美]阿曼达·蒙特尔/著李辛/译
Java性能权威指南
过劳:好工作是如何变坏的
[美]艾琳·L.凯利(Erin;L.Kelly;[美]菲利斯·莫恩((Phyllis;Moen
Java性能权威指南
雪花的故事(用照片展示雪花的秘密,为你揭开冬日奇景的奥秘)
[美]马克·卡西诺[美]乔恩·尼尔森
Java性能权威指南
进阶书系-国际史的技艺
[美] 马克·特拉亨伯格
Java性能权威指南
杜甫传
[美]弗洛伦斯.艾思柯
Java性能权威指南
爵士乐史(精装本)
[美]泰德·乔亚 著
Java性能权威指南
作家榜名著:夏日走过山间(王芳推荐版本!与《瓦尔登湖》齐名的经典名作!心浮气躁想要逃离现实生活?让大自然的神奇力量瞬间治愈你!)
[美]约翰·缪尔、作家榜经典名 著;刘子超 译
Java性能权威指南
环境的科学 (平装版)
[美]威廉·坎宁安 后浪
Java性能权威指南
数学侦探 游乐园里的古怪笑脸
[美]丹尼尔·肯尼 艾米丽·博艾尔 著 刘玙婧、王婧 译;小博集出品
Java性能权威指南
读懂经济学:提升“财商”、塑造价值观念的经济学读本,一本书参破瞬息万变的经济世界底层逻辑!
[美]霍华德·亚鲁斯 著;赵善江 译;斯坦威 出品
Java性能权威指南
数学侦探 神秘路线上的连环追踪
[美]丹尼尔·肯尼 艾米丽·博艾尔 著 刘玙婧、王婧 译;小博集出品
Java性能权威指南
陶瓷创意造型新技法(陶艺学习系列丛书)
[美]黛布·施瓦茨科夫 著,张靖靖 译