Java程序性能优化是一个永远逃不开的话题,优化无处不在!一个偶然间,小编得到了一份Java程序性能优化的笔记,小编读完这份笔记后大为惊叹,实在是写的太好了,不忍独乐乐,于是把这份笔记免费分享出来,供大家参阅,共同学习,共同成长!
这份笔记涵盖了:Java性能调优概述、设计优化、Java程序优化、并行程序开发及优化、JVM调优、Java性能调优工具!
由于文章篇幅的限制,接下来小编只能为大家展示完整目录和部分内容,完整版的免费获得方式放在了文末!(具体的调优方式全部都在笔记之中)
Java性能调优概述
性能概述
-
看懂程序的性能
-
性能的参考指标
-
木桶原理与性能瓶颈
-
AmdahI定律
性能调优的层次
-
设计调优
-
代码调优
-
JVM调优
-
数据库调优
-
操作系统调优
基本调优策略和手段
-
优化的一般步骤
-
系统优化注意事项
设计优化
善用设计模式
-
单例模式
-
代理模式
-
享元模式
-
装饰者模式
-
观察者模式
-
Value Object模式
-
业务代理模式
常用优化组件和方法
-
缓冲(Buffer)
-
缓存(Cache)
-
对象复用——” 池”
-
并行替代串行
-
负裁均衡
-
时间换空间
-
空间换时间
Java程序优化
字符串优化处理
-
String对象及其特点
-
subString ()方法的内存泄漏
-
字符串分割和查找
-
StringBuffer和StringBuilder
核心数据结构
-
List接口
-
Map接口
-
Set接口
-
优化集合访问代码
-
RandomAccess接口
使用NIO提升性能
-
NIO的Buffer类族和Channel
-
Buffer的基本原理
-
Buffer的相关操作
-
MappedByteBuffer性能评估
-
直接内存访问
引用类型
-
强引用
-
软引用
-
弱引用
-
虚引用
-
WeakHashMap类及其实现
有助于改善性能的技巧
-
慎用异常
-
使用局部变量
-
位运算代替乘除法
-
替换switch
-
一维数组代替二维数组
-
提取表达式
-
展开循环
-
布尔运算代替位运算
-
使用arrayCopy ()
-
使用Buffer进行I/O操作
-
使用clone ()代替new
-
静态方法替代实例方法
并行程序开发及优化
并行程序设计模式
-
Future模式
-
Master-Worker模式
-
Guarded Suspension模式
-
不变模式
-
生产者-消费者模式
JDK多任务执行框架
-
无限制线程的缺陷
-
简单的线程池实现
-
Executor框架
-
自定义线程池
-
优化线程池大小
-
扩展ThreadPoolExecutor
JDK并发数据结构
-
并发List
-
并发Set
-
并发Map
-
并发Queue
-
并发Deque
并发控制方法
-
Java内存模型与volatile
-
同步关键字synchronized
-
ReentrantLock重入锁
-
ReadWriteLock读写锁
-
Condition对象
-
Semaphore信号量
-
ThreadLocal线程局部变量
“锁”的性能和优化
-
线程的开销
-
避免死锁
-
减小锁持有时间
-
减小锁粒度
-
读写分离锁来替换独占锁
-
锁分离
-
重入锁和内部锁
-
锁粗化
-
自旋锁
-
锁消除
-
锁偏向
无锁的并行计算
-
非阻塞的同步/无锁
-
原子操作
-
Amino框架介绍
-
Amino集合
-
Amino树
-
Amino图
-
Amino简单调度模式
协程
-
协程的概念
-
Kllim框架简介
-
Task及其状态
-
Fiber及其状态
-
Kilim开发环境配置
-
Kilim之Hello World
-
多任务通信
-
Klim实例及性能评估
JVM调优
Java虚拟机内存模型
-
程序计数器
-
Java虚拟机栈
-
本地方法栈
-
Java堆
-
方法区
JVM内存分配参数
-
设置最大堆内存
-
设置最小堆内存
-
设置新生代
-
设置持久代
-
设置线程栈
-
堆的比例分配
-
堆分配参数总结
垃圾收集基础
-
垃圾收集的作用
-
垃圾回收算法与思想
-
垃圾收集器的类型
-
评价GC策略的指标
-
新生代串行收集器
-
老年代串行收集器
-
并行收集器
-
新生代并行回收(Parallel Scavenge)收集器
-
老年代并行回收收集器
-
CMS收集器
-
G1收集器(Garbage First)
-
Stop the World案例
-
收集器对系统性能的影响
-
GC相关参数总结
常用调优案例和方法
-
将新对象预留在新生代
-
大对象进入老年代
-
设置对象进入老年代的年龄
-
稳定与震荡的堆大小
-
吞吐量优先案例
-
使用大页案例
-
降低停顿案例
实用JMVM参数
-
JIT编译参数
-
堆快照(堆Dump)
-
错误处理
-
取得GC信息
-
类和对象跟踪
-
控制GC
-
选择类校验器
-
Solaris下线程控制
-
使用大页
-
压缩指针
实战JVM调优
-
Tomcat简介与启动加速
-
Web应用程序介绍
-
JMeter介绍与使用
-
调优前Web应用运行状况
-
调优过程
Java性能调优工具
Linux命令行工具
-
top命令
-
sar命令
-
vmstat命令
-
iostat命令
-
pidstat工具
Windows工具
-
任务管理器
-
perfmon性能监控工具
-
Process Explorer
-
pslist命令行
JDK命令行工具
-
jps命令
-
jstat命令
-
jinfo命令
-
jmap命令
-
jhat命令
-
jstack命令
-
jstatd命令
-
hprof工具
JConsole工具
-
JConsole连接Java程序
-
Java程序概况
-
内存监控
-
线程监控
-
类加载情况
-
虚拟机信息
-
MBean管理
-
使用插件
Visual VM多合一工具
-
Visual VM连接应用程序
-
监控应用程序概况
-
Thread Dump和分析
-
性能分析
-
快照
-
内存快照分析
-
MBean管理
-
TDA使用
-
BTrace介绍
Visual VM对OQL的支持
-
Visual VM的OQL基本语法
-
内置heap对象
-
对象函数
-
集合/统计函数
-
程序化OQL
MAT内存分析工具
-
初识MAT
-
浅堆和深堆
-
支配树(Dominator Tree)
-
垃圾回收根
-
内存泄露检测
-
最大对象报告
-
查找支配者
-
线程分析
-
集合使用情况分析
-
扩展MAT
MAT对OQL的支持
-
Select子句
-
From子句
-
Where子句
-
内置对象与方法
JProfle简介
-
JProfile使用配置
-
内存视图
-
堆快照
-
CPU视图
-
线程视图
-
JVM统计信息
免费获取方式:点赞这篇文章+关注我,扫码获取!