Java性能权威指南 版权信息
- ISBN:9787115413765
- 条形码:9787115413765 ; 978-7-115-41376-5
- 装帧:暂无
- 册数:暂无
- 重量:暂无
- 所属分类:>>
Java性能权威指南 本书特色
本书对java 7和java 8中影响性能的因素展开了全面深入的介绍,讲解传统上影响应用性能的jvm特征,包括即时编译器、垃圾收集、语言特征等。内容包括:用g1垃圾收集器应用的吞吐量;使用java飞行记录器查看性能细节,而不必借助专业的分析工具;堆内存与原生内存实践;线程与同步的性能,以及数据库性能实践等。
Java性能权威指南 内容简介
市面上介绍java的书有很多,但专注于java性能的并不多,能游刃有余地展示java性能优化难点的更是凤毛麟角,本书即是其中之一。通过使用jvm和java平台,以及java语言和应用程序接口,本书详尽讲解了java性能调优的相关知识,帮助读者深入理解java平台性能的各个方面,*终使程序如虎添翼。
Java性能权威指南 目录
第1章 导论 11.1 概述 21.2 平台版本约定 21.3 全面的性能调优 41.3.1 编写更好的算法 41.3.2 编写更少的代码 41.3.3 老调重弹的过早优化 51.3.4 其他:数据库很可能就是瓶颈 61.3.5 常见的优化 71.4 小结 8第2章 性能测试方法 92.1 原则1:测试真实应用 92.1.1 微基准测试 92.1.2 宏基准测试 132.1.3 介基准测试 152.1.4 代码示例 162.2 原则2:理解批处理流逝时间、吞吐量和响应时间 192.2.1 批处理流逝时间 192.2.2 吞吐量测试 202.2.3 响应时间测试 202.3 原则3:用统计方法应对性能的变化 232.4 原则4:尽早频繁测试 262.5 小结 28第3章 java性能调优工具箱 293.1 操作系统的工具和分析 293.1.1 cpu使用率 293.1.2 cpu运行队列 323.1.3 磁盘使用率 333.1.4 网络使用率 343.2 java监控工具 353.2.1 基本的vm信息 363.2.2 线程信息 393.2.3 类信息 393.2.4 实时gc分析 393.2.5 事后堆转储 393.3 性能分析工具 393.3.1 采样分析器 403.3.2 探查分析器 413.3.3 阻塞方法和线程时间线 423.3.4 本地分析器 443.4 java任务控制 453.4.1 java飞行记录器 463.4.2 开启jfr 523.4.3 选择jfr 事件 543.5 小结 56第4章 jit编译器 584.1 jit编译器:概览 584.2 调优入门:选择编译器类型(client、server或二者同用) 614.2.1 优化启动 624.2.2 优化批处理 634.2.3 优化长时间运行的应用 644.3 java和jit编译器版本 644.4 编译器中级调优 674.4.1 调优代码缓存 674.4.2 编译阈值 684.4.3 检测编译过程 704.5 高级编译器调优 734.5.1 编译线程 734.5.2 内联 744.5.3 逃逸分析 754.6 逆优化 764.6.1 代码被丢弃 774.6.2 逆优化僵尸代码 784.7 分层编译级别 794.8 小结 80第5章 垃圾收集入门 815.1 垃圾收集概述 815.1.1 分代垃圾收集器 835.1.2 gc算法 845.1.3 选择gc算法 875.2 gc调优基础 925.2.1 调整堆的大小 925.2.2 代空间的调整 955.2.3 永久代和元空间的调整 965.2.4 控制并发 975.2.5 自适应调整 985.3 垃圾回收工具 995.4 小结 102第6章 垃圾收集算法 1036.1 理解throughput收集器 1036.2 理解cms收集器 1096.2.1 针对并发模式失效的调优 1136.2.2 cms收集器的永久代调优 1166.2.3 增量式cms垃圾收集 1176.3 理解g1垃圾收集器 1186.4 高级调优 1266.4.1 晋升及survivor空间 1266.4.2 分配大对象 1296.4.3 aggressiveheap标志 1366.4.4 全盘掌控堆空间的大小 1376.5 小结 138第7章 堆内存*佳实践 1407.1 堆分析 1407.1.1 堆直方图 1417.1.2 堆转储 1427.1.3 内存溢出错误 1467.2 减少内存使用 1497.2.1 减少对象大小 1497.2.2 延迟初始化 1527.2.3 不可变对象和标准化对象 1567.2.4 字符串的保留 1577.3 对象生命周期管理 1607.3.1 对象重用 1607.3.2 弱引用、软引用与其他引用 1657.4 小结 175第8章 原生内存*佳实践 1768.1 内存占用 1768.1.1 测量内存占用 1778.1.2 内存占用*小化 1788.1.3 原生nio缓冲区 1788.1.4 原生内存跟踪 1798.2 针对不同操作系统优化jvm 1828.2.1 大页 1828.2.2 压缩的oop 1858.3 小结 187第9章 线程与同步的性能 1889.1 线程池与threadpoolexecutor 1889.1.1 设置*大线程数 1899.1.2 设置*小线程数 1929.1.3 线程池任务大小 1939.1.4 设置threadpoolexecutor的大小 1939.2 forkjoinpool 1959.3 线程同步 2019.3.1 同步的代价 2029.3.2 避免同步 2059.3.3 伪共享 2089.4 jvm线程调优 2119.4.1 调节线程栈大小 2119.4.2 偏向锁 2129.4.3 自旋锁 2129.4.4 线程优先级 2139.5 监控线程与锁 2139.5.1 查看线程 2149.5.2 查看阻塞线程 2149.6 小结 217第10章 java ee 性能调优 21810.1 web容器的基本性能 21810.2 线程池 22210.3 ejb会话bean 22310.3.1 调优ejb对象池 22310.3.2 调优ejb缓存 22510.3.3 本地和远程实例 22610.4 xml和json处理 22710.4.1 数据大小 22710.4.2 解析和编组概述 22910.4.3 选择解析器 23010.4.4 xml验证 23510.4.5 文档模型 23710.4.6 java对象模型 24010.5 对象序列化 24110.5.1 transient字段 24110.5.2 覆盖默认的序列化 24110.5.3 压缩序列化数据 24410.5.4 追踪对象复制 24610.6 java ee网络api 24810.7 小结 250第11章 数据库性能的*佳实践 25111.1 jdbc 25111.1.1 jdbc驱动程序 25211.1.2 预处理语句和语句池 25311.1.3 jdbc连接池 25511.1.4 事务 25611.1.5 结果集的处理 26211.2 jpa 26411.2.1 事务处理 26411.2.2 对jpa的写性能进行优化 26711.2.3 对jpa的读性能进行优化 26811.2.4 jpa缓存 27111.2.5 jpa的只读实体 27611.3 小结 277第12章 java se api技巧 27812.1 缓冲式i/o 27812.2 类加载 28012.3 随机数 28412.4 java原生接口 28512.5 异常 28712.6 字符串的性能 29012.7 日志 29112.8 java集合类api 29212.8.1 同步还是非同步 29312.8.2 设定集合的大小 29412.8.3 集合与内存使用效率 29512.9 aggressiveopts标志 29612.9.1 替代实现 29612.9.2 其他标志 29712.10 lambda表达式和匿名类 29712.11 流和过滤器的性能 30012.12 小结 302附录a 性能调优标志摘要 303作者简介 312关于封面 312
展开全部
Java性能权威指南 相关资料
“scott在这本书里深入介绍了jit编译器、垃圾收集算法、线程同步等复杂问题,讲解了很多应用性能分析以及优化的方法,让我受益匪浅。推荐给所有想了解性能优化的java程序员。”
——thorben janssen,资深java程序员,独立java培训师,jsr 365专家组成员
“这是我今年读到的所有java书中最有用的一本。作者全方位讲解了java应用程序的方方面面,下至核心术语、调优工具等基础知识,上至java ee、java 8等进阶话题,环环相扣。每一位急于了解java性能调优或java虚拟机工作方式的开发者,都必备此书。”
——读者评论
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。