Java性能优化权威指南
2021-09-11 10:44:49 0 举报
AI智能生成
《Java性能优化权威指南》电子书籍目录
作者其他创作
大纲/内容
Java应用的基准测试
基准测试锁面临的挑战
基准测试的预热阶段
垃圾收集
使用JavaTime接口
提出无效代码
内联
逆优化
创建微基准测试的注意事项
实验设计
使用统计方法
计算均值
计算标准差
计算置信区间
使用假设测试
使用统计方法的注意事项
参考文献
多层应用的基准测试
基准测试难题
企业级应用基准测试的考量
定义被测系统
制定微基准测试
定义用户交互模型
自定性能指标
扩展基准测试
用利特二法则验证
思考时间
扩展性分析
运行基准测试
应用服务器监控
GlassFish监控
监控子系统
Solaris
Linux
Windows
外部系统的性能
磁盘I/O
监控和调优资源池
企业级应用性能分析
参考资料
Web应用的性能调优
Web 应用的基准测试
Web容器的组件
Http连接器
Servlet引擎
Web容器的监控和性能调优
容器的开发和生产模式
安全管理器
JVM调优
HTTP服务和Web 容器
HTTP监听器
最佳实践
Servlet和JSP最佳实践
内容缓存
会话持久化
HTTP服务器文件缓存
参考资料
Web Service的性能调优
XML的性能
XML处理的生命周期
解析/解编组
访问
修改
序列化/编组
验证
解析外部实体
XML文旦的局部处理
选择合适的API
JAX-WS参数实现栈
Web Service基准测试
影响Web Service性能的因素
消息大小的影响
不同Schema类型的性能特征
中断服务器的实现
处理程序员的性能
最佳性能实践
二进制负载的处理
处理XML文档
使用MTOM发送XML文档
使用Provider接口
快速信息集
HTTP压缩
Web Service 客户端的性能
参考资料
Java持久化、Enterprise Java Bean的性能
EJB编程模型
Java持久化API即期参考实现
监控及调优EJB容器
线程池
Bean池和缓存
EclipseLink会话缓存
事务隔离级
Enterprise Java Bean的最佳实践
简要说明使用的EJB基准测试
EJB2.1
EJB3.0
Java持久化最佳实践
JPA查询语言中的查询
查询结果缓存
FetchType
连接池
批量更新
选择正确的数据锁策略
不带事务的读取
继承
参考资料
附录
重要的HotSpot VM 选项
性能分析技巧示例源代码
锁竞争实现1
锁竞争实现2
锁竞争实现3
锁竞争实现4
锁竞争实现4
调整容量变化1
调整容量变化2
增加并发性的单线程实现
增加并发性的多线程实现
策略、方案和方法论
性能问题的现状
性能分析的两种方法
自顶向下
自底向上
选择正确的平台并评估系统性能
选择正确的CPU架构
评估系统性能
参考资料
操作系统性能监控
定义
CPU使用率
监控CPU使用率:Windows
监控CPU使用率:Windows typerf
监控CPU使用率:Linux
监控CPU使用率:Solaris
命令监控CPU使用率:Linux和Solaris
CPU调度程序运行队列
监控CPU调度运行队列:Windows
监控CPU调度运行队列:Solaris
监控CPU调度运行队列:Linux
内存使用率
监控内存使用率:Windows
监控内存使用率:Solaris
监控内存使用率:Linux
监控锁竞争:Solaris
监控锁竞争:Linux
监控锁竞争:Windows
隔离竞争锁
监控抢占式上下文切换
监控线程迁移
网络I/O使用率
监控网络I/O使用率:Solaris
监控网络I/O使用率:Linux
监控网络I/O使用率:Windows
应用性能改进的概率
磁盘I.O使用率
其他命令工具
监控CPU使用率
参考资料
JVM整体
HotSpot VM 的基本架构
HotSpot VM 运行时
命令行选项
VM生命周期
VM类加载
字节码验证
类数据共享
解释器
异常处理
同步
线程管理
C++堆管理
Java本地接口
VM致命错误处理
HotSpot VM 垃圾收集器
分代垃圾收集
新生代
快速内存分配
垃圾收集器
Serial收集器
Parallel收集器,吞吐量为先
Mostly-Consurrent收集器:低延迟为先
Garbage-First(G1)收集器:CMS替代品
垃圾收集器比较
应用程序对垃圾收集器的影响
简单回顾垃圾收集器历史
HotSpot VM JIT编译器
类型集成关系分析
编译策略
逆优化
Client JIT 编译器概览
Server JIT编译器概览
静态单赋值:程序依赖图
未来增强展望
HotSpot VM 自适应调优
Java 1.4.2的默认值
Java 5 自动优化的默认值
Java 6 update 18 更新后的默认优化值
自适应Java堆调整
超越自动化
参考资料
JVM性能监控
定义
垃圾收集
重要的垃圾收集数据
垃圾收集报告
垃圾收集数据的离线分析
图形化工具
JIT编译器
类加载
Java应用监控
参考资料
Java应用性能分析
术语
通用性能分析术语
Oracle Solaris Studio
Performance Profiler 术语
Performance Profiler 术语
NetBeans Profiler术语
Oracle Solaris Studio
Performance Analyzer
Performance Analyzer
支持平台
下载、安装Oracle Solaris Studio
Performance Analyzer
Performance Analyzer
使用Oracle Solaris Studio
Performance Analyzer抓取性能数据
Performance Analyzer抓取性能数据
查看性能数据
数据表示
过滤性能数据
命令工具er_print
NetBeans Profiler
支持平台
下载、安装NetBeans Profiler
开始方法分析会话
Controls子面板
Status子面板
Profling Results 子面板
Save Snapshots 子面板
View子面板
Basice Telemetry 子面板
查看动态结果
对结果进行快照
启动内存分析会话
查看实时结果
对结果进行快照
定位内存泄漏
分析对转储
参考资料
Java应用性能分析技巧
性能优化机会
系统或内核态CPU使用
锁竞争
Volatile的使用
调整数据结构的大小
StringBuilder或StringBuffer大小的调整
Java Collection类大小调整
增加并行性
过高的CPU使用率
其他有用的分析提示
参考资料
JVM性能调优入门
方法
假设条件
测试基础设施需求
应用程序的系统需求
可用性
可管理学
吞吐量
延迟及相应性
内存占用
启动时间
对系统需求分级
选择JVM部署模式
单JVM部署模式
多JVM部署模式
通用建议
选择JVM运行模式
Client模式或Server模式
32位、64位JVM
选择垃圾收集器
垃圾收集调优基础
性能属性
原则
命令选项及GC日志
缺点内存占用
约束
HotSpot VM堆的布局
堆大小调优着眼点
计算活跃数据大小
初始堆空间大小配置
其他考虑因素
调优演示、响应性
输入
优化新生代的大小
优化老年代的大小
为CMS调优延迟
Survivor空间介绍
解析晋升阈值
监控晋升阈值
调整Survivor空间的容量
显示的垃圾收集
并发永久代垃圾收集
调优CMS停顿时间
下一步
应用程序吞吐量调优
CMS吞吐量调优
Throughput收集器调优
Survivor空间调优
调优并行垃圾收集线程
在NUMA系统上部署
下一步
极端示例
其他性能命令行选项
实验性(最近最大)
逃逸分析
偏向锁
大页面支持
参考资料
0 条评论
下一页