文件大小:175.14 MB
文件类型:pdf
发布时间:2022-12-31 19:17:22
需资源分:2
下载次数:0
Tag:JAVA 性能优化
::资源简介::
Java性能优化权威指南,1
内容提要,4
序,5
前言,7
致谢,9
目录,11
第01章 策略_方法和方法论,16
1_1 性能问题的现状,16
1_2 性能分析的两种方法:自顶向下和自底向上,19
1_2_1 自顶向下,19
1_2_2 自底向上,20
1_3 选择正确的平台并评估系统性能,20
1_3_1 选择正确的CPU架构,21
1_3_2 评估系统性能,22
1_4 参考资料,22
第02章 操作系统性能监控,23
2_1 定义,23
2_2 CPU使用率,24
2_2_1 监控CPU使用率:Windows,24
2_2_2 监控CPU使用率:Windows typeperf,27
2_2_3 监控CPU使用率:Linux,28
2_2_4 监控CPU使用率:Solaris,29
2_2_5 命令行监控CPU使用率:Linux和Solaris,31
2_3 CPU调度程序运行队列,34
2_3_1 监控CPU调度程序运行队列:Windows,34
2_3_2 监控CPU调度程序运行队列:Solaris,36
2_3_3 监控CPU调度程序运行队列:Linux,36
2_4 内存使用率,37
2_4_1 监控内存利用率:Windows,37
2_4_2 监控内存使用率:Solaris,38
2_4_3 监控内存使用率:Linux,39
2_4_4 监控锁竞争:Solaris,40
2_4_5 监控锁竞争:Linux,41
2_4_6 监控锁竞争:Windows,42
2_4_7 隔离竞争锁,42
2_4_8 监控抢占式上下文切换,42
2_4_9 监控线程迁移,43
2_5 网络I_O使用率,43
2_5_1 监控网络I_O使用率:Solaris,44
2_5_2 监控网络I_O使用率:Linux,45
2_5_3 监控网络I_O使用率:Windows,45
2_5_4 应用性能改进的考虑,46
2_6 磁盘I_O使用率,46
2_7 其他命令行工具,49
2_8 监控CPU使用率:SPARC T系列系统,50
2_9 参考资料,51
第03章 JVM概览,53
3_1 HotSpot VM的基本架构,53
3_2 HotSpot VM运行时,55
3_2_1 命令行选项,55
3_2_2 VM生命周期,56
3_2_3 VM类加载,59
3_2_4 字节码验证,61
3_2_5 类数据共享,62
3_2_6 解释器,63
3_2_7 异常处理,64
3_2_8 同步,65
3_2_9 线程管理,66
3_2_10 C++堆管理,68
3_2_11 Java本地接口,69
3_2_12 VM致命错误处理,70
3_3 HotSpot VM垃圾收集器,71
3_3_1 分代垃圾收集,71
3_3_2 新生代,73
3_3_3 快速内存分配,75
3_3_4 垃圾收集器,75
3_3_5 Serial收集器,76
3_3_6 Parallel收集器:吞吐量为先!,77
3_3_7,Mostly-Concurrent收集器:低延迟为先!,77
3_3_8,Garbage-First收集器:CMS替代者,79
3_3_9 垃圾收集器比较,79
3_3_10 应用程序对垃圾收集器的影响,80
3_3_11 简单回顾收集器历史,80
3_4 HotSpot VM JIT编译器,80
3_4_1 类型继承关系分析,82
3_4_2 编译策略,82
3_4_3 逆优化,83
3_4_4 Client JIT编译器概览,84
3_4_5 Server JIT编译器概览,84
3_4_6 静态单赋值——程序依赖图,84
3_4_7 未来增强展望,86
3_5 HotSpot VM自适应调优,86
3_5_1 Java 1_4_2的默认值,86
3_5_2 Java 5自动优化的默认值,86
3_5_3 Java 6 Update 18更新后的默认优化值,88
3_5_4 自适应Java堆调整,89
3_5_5 超越自动优化,90
3_6 参考资料,90
第04章 JVM性能监控,92
4_1 定义,92
4_2 垃圾收集,93
4_2_1 重要的垃圾收集数据,93
4_2_2 垃圾收集报告,93
4_2_3 垃圾收集数据的离线分析,101
4_2_4 图形化工具,104
4_3 JIT编译器,118
4_4 类加载,119
4_5 Java应用监控,121
4_6 参考资料,124
第05章 Java应用性能分析,125
5_1 术语,126
5_1_1 通用性能分析术语,126
5_1_2 Oracle Solaris Studio Performance Analyzer术语,127
5_1_3 NetBeans Profiler术语,127
5_2 Oracle Solaris Studio Performance Analyzer,127
5_2_1 支持平台,128
5_2_2 下载_安装Oracle Solaris Studio Performance Analyzer,129
5_2_3 使用Oracle Solaris Studio Performance Analyzer 抓取性能数据,129
5_2_4 查看性能数据,133
5_2_5 数据表示,140
5_2_6 过滤性能数据,143
5_2_7 命令行工具er_print,144
5_3 NetBeans Profiler,150
5_3_1 支持平台,151
5_3_2 下载安装NetBeans Profiler,151
5_3_3 开始方法分析会话,152
5_3_4 Controls子面板,158
5_3_5 Status子面板,158
5_3_6 Profiling Results子面板,158
5_3_7 Saved Snapshots子面板,159
5_3_8 View子面板,159
5_3_9 Basic Telemetry子面板,159
5_3_10 查看动态结果,160
5_3_11 对结果进行快照,160
5_3_12 启动内存分析会话,161
5_3_13 查看实时结果,163
5_3_14 对结果进行快照,165
5_3_15 定位内存泄漏,165
5_3_16 分析堆转储,166
5_4 参考资料,167
第06章 Java应用性能分析技巧,168
6_1 性能优化机会,168
6_2 系统或内核态CPU使用,169
6_3 锁竞争,176
6_4 Volatile的使用,186
6_5 调整数据结构的大小,187
6_5_1 StringBuilder或StringBuffer大小的调整,187
6_5_2 Java Collection类大小调整,190
6_6 增加并行性,194
6_7 过高的CPU使用率,196
6_8 其他有用的分析提示,197
6_9 参考资料,199
第07章 JVM性能调优入门,200
7_1 方法,200
7_1_1 假设条件,202
7_1_2 测试基础设施需求,203
7_2 应用程序的系统需求,203
7_2_1 可用性,203
7_2_2 可管理性,203
7_2_3 吞吐量,204
7_2_4 延迟及响应性,204
7_2_5 内存占用,204
7_2_6 启动时间,204
7_3 对系统需求分级,205
7_4 选择JVM部署模式,205
7_4_1 单JVM部署模式,205
7_4_2 多JVM部署模式,205
7_4_3 通用建议,206
7_5 选择JVM运行模式,206
7_5_1 Client模式或Server模式,206
7_5_2 32位_64位 JVM,207
7_5_3 垃圾收集器,207
7_6 垃圾收集调优基础,208
7_6_1 性能属性,208
7_6_2 原则,208
7_6_3 命令行选项及GC日志,209
7_7 确定内存占用,212
7_7_1 约束,212
7_7_2 HotSpot VM堆的布局,212
7_7_3 堆大小调优着眼点,215
7_7_4 计算活跃数据大小,216
7_7_5 初始堆空间大小配置,217
7_7_6 其他考量因素,218
7_8 调优延迟_响应性,219
7_8_1 输入,220
7_8_2 优化新生代的大小,220
7_8_3 优化老年代的大小,222
7_8_4 为CMS调优延迟,225
7_8_5 Survivor空间介绍,227
7_8_6 解析晋升阈值,229
7_8_7 监控晋升阈值,230
7_8_8 调整Survivor空间的容量,231
7_8_9 显式的垃圾收集,237
7_8_10 并发永久代垃圾收集,238
7_8_11 调优CMS停顿时间,239
7_8_12 下一步,240
7_9 应用程序吞吐量调优,240
7_9_1 CMS吞吐量调优,240
7_9_2 Throughput收集器调优,241
7_9_3 Survivor空间调优,243
7_9_4 调优并行垃圾收集线程,246
7_9_5 在NUMA系统上部署,246
7_9_6 下一步,247
7_10 极端示例,247
7_11 其他性能命令行选项,247
7_11_1 实验性(最近最大)优化,247
7_11_2 逃逸分析,248
7_11_3 偏向锁,248
7_11_4 大页面支持,249
7_12 参考资料,251
第08章 Java应用的基准测试,252
8_1 基准测试所面临的挑战,252
8_1_1 基准测试的预热阶段,253
8_1_2 垃圾收集,255
8_1_3 使用Java Time接口,255
8_1_4 剔除无效代码,256
8_1_5 内联,262
8_1_6 逆优化,266
8_1_7 创建微基准测试的注意事项,271
8_2 实验设计,272
8_3 使用统计方法,273
8_3_1 计算均值,273
8_3_2 计算标准差,273
8_3_3 计算置信区间,274
8_3_4 使用假设测试,275
8_3_5 使用统计方法的注意事项,277
8_4 参考文献,278
8_5 参考资料,278
第09章 多层应用的基准测试,279
9_1 基准测试难题,279
9_2 企业级应用基准测试的考量,281
9_2_1 定义被测系统,281
9_2_2 制定微基准测试,281
9_2_3 定义用户交互模型,282
9_2_4 定义性能指标,285
9_2_5 扩展基准测试,288
9_2_6 用利特尔法则验证,289
9_2_7 思考时间,290
9_2_8 扩展性分析,293
9_2_9 运行基准测试,293
9_3 应用服务器监控,296
9_3_1 GlassFish监控,296
9_3_2 监控子系统,301
9_3_3 Solaris,302
9_3_4 Linux,303
9_3_5 Windows,303
9_3_6 外部系统的性能,304
9_3_7 磁盘I_O,307
9_3_8 监控和调优资源池,308
9_4 企业级应用性能分析,309
9_5 参考资料,310
第10章 Web应用的性能调优,312
10_1 Web应用的基准测试,313
10_2 Web容器的组件,313
10_2_1 HTTP连接器,314
10_2_2 Servlet引擎,315
10_3 Web容器的监控和性能调优,315
10_3_1 容器的开发和生产模式,315
10_3_2 安全管理器,316
10_3_3 JVM调优,316
10_3_4 HTTP服务和Web容器,318
10_3_5 HTTP监听器,318
10_4 最佳实践,330
10_4_1 Servlet和JSP最佳实践,330
10_4_2 内容缓存,339
10_4_3 会话持久化,343
10_4_4 HTTP服务器文件缓存,344
10_5 参考资料,348
第11章 Web Service的性能,349
11_1 XML的性能,349
11_1_1 XML处理的生命周期,350
11_1_2 解析_解编组,350
11_1_3 访问,353
11_1_4 修改,353
11_1_5 序列化_编组,354
11_2 验证,354
11_3 解析外部实体,356
11_4 XML文档的局部处理,358
11_5 选择合适的API,361
11_6 JAX-WS参考实现栈,364
11_7 Web Service基准测试,365
11_8 影响Web Service性能的因素,368
11_8_1 消息大小的影响,368
11_8_2 不同Schema类型的性能特征,370
11_8_3 终端服务器的实现,373
11_8_4 处理程序的性能,374
11_9 最佳性能实践,376
11_9_1 二进制负载的处理,376
11_9_2 处理XML文档,380
11_9_3 使用MTOM发送XML文档,380
11_9_4 使用Provider接口,383
11_9_5 快速信息集,385
11_9_6 HTTP压缩,387
11_9_7 Web Service客户端的性能,388
11_10 参考资料,389
第12章 Java持久化及Enterprise Java Bean的性能,390
12_1 EJB编程模型,391
12_2 Java持久化API及其参考实现,391
12_3 监控及调优EJB容器,394
12_3_1 线程池,395
12_3_2 Bean池和缓存,397
12_3_3 EclipseLink会话缓存,400
12_4 事务隔离级,401
12_5 Enterprise Java Bean的最佳实践,402
12_5_1 简要说明使用的EJB基准测试,402
12_5_2 EJB 2_1,403
12_5_3 EJB 3_0,415
12_6 Java持久化最佳实践,418
12_6_1 JPA查询语言中的查询,418
12_6_2 查询结果缓存,420
12_6_3 FetchType,421
12_6_4 连接池,423
12_6_5 批量更新,424
12_6_6 选择正确的数据库锁策略,426
12_6_7 不带事务的读取,426
12_6_8 继承,426
12_7 参考资料,427
附录A 重要的HotSpot VM选项,428
附录B 性能分析技巧示例源代码,444
B_1 锁竞争实现1,444
B_2 锁竞争实现2,454
B_3 锁竞争实现3,464
B_4 锁竞争实现4,474
B_5 锁竞争实现5,484
B_6 调整容量变化1,496
B_7 调整容量变化2,507
B_8 增加并发性的单线程实现,519
B_9 增加并发性的多线程实现,529
::下载地址::
>> 评论