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