前言
Java性能优化,它存在的理由有很多。计算机面对海量数据或者任务时,无论如何你都会碰到性能压力,唯一的选择是你会把这个压力放在哪一层或者哪一个位置来应对,以及采取什么应对措施。程序凑合着上线是一回事,而在压力下能够优美地运行往往很不容易。
通常来说Java性能优化一般包含这五方面:
- 设计优化
 - 代码优化
 - JVM优化
 - 数据库优化
 - 操作系统优化
 
可以说性能调优在很大程度上是一门艺术,解决的Java性能问题越多,技艺才会越精湛。我们不仅要关心JVM的持续演进,也要积极地去了解底层的硬件平台和操作系统的进步。
本文互联网雷锋(小编我)要为大家介绍的Alibaba内部性能优化进阶笔记就不仅仅只针对JVM调优进行讲解,每一章节都有实际的案例支撑。具体包括:性能优化策略.程序编写及硬件服务器的基础知识、Java API优化建议、算法类程序的优化建议、并行计算优化建议、Java程序性能监控及检测、JVM原理知识等。大家可以深入了解Java性能调优的许多主题及相关的综合性知识。
话不多说,下面我就把文档的主要内容展示出来,由于篇幅限制只能以截图的方式展示。
性能调优策略概述
- 为什么需要调优
 - 性能优化的参考因素
 
- 传统计算机体系的分歧
 - 导致系统瓶颈的计算资源
 - 程序性能衡量指标
 - 性能优化目标
 - 性能优化策略
 
- 性能调优分类方法
 
- 业务方面
 - 基础技术方面
 - 组件方面
 - 架构方面
 - 层次方面
 
优化前的准备知识
- 服务器知识
 
- 内存
 - GPU/CPU
 - 硬盘
 - 网络架构
 
- 新兴技术
 
Java API调用优化建议
- 面向对象及基础类型
 - 集合类概念
 - 字符串概念
 - 引用类型概念
 
- 强引用(Strong Reference)
 - 软引用(Soft Reference)
 - 弱引用(Weak Reference)
 - 引用队列
 - 虚引用(Phantom Reference)
 
- 
			其他相关概念
程序设计优化建议
- 算法优化概述
 
- 常用算法逻辑描述
 - 多核算法优化原理
 - 
					Java算法优化实践
- 设计模式
 
- 设计模式的六大准则
 - 单一对象控制
 - 并行程序设计模式
 - 接口适配
 - 访问方式隔离
 
I/O及网络相关优化
- I/O操作优化
 - Socket编程
 - NIO2.0文件系统
 
- 数据应用优化
 
- 关系型数据库优化
 - 向HBase插入大量数据
 - 解决海量数据缓存
 
- 其他优化
 
- Web系统性能优化建议
 - 死锁情况解决方案
 - JavaBeans组件
 
Java并行程序优化建议
- 并行程序优化概述
 
- 资源限制带来的挑战
 - 进程、线程、协程
 - 使用多线程的原因
 - 线程不安全范例
 - 重排序机制
 - 实例变量的数据共享
 - 生产者与消费者模式
 - 线程池的使用
 
- 锁机制对比
 
- 锁机制概述
 - Synchronized使用技巧
 - Volatile的使用技巧
 - 队列同步器
 - 可重入锁
 - 读写锁
 - 偏向锁和轻量级锁
 
- 增加程序并行性
 
- 并发计数器
 - 减少上下文切换次数
 - 针对Thread类的更新
 - Fork/Join框架
 - 
							Executor框架
- JDK类库使用
 
- 原子值
 - 并行容器
 - 非阻塞队列
 - 阻塞队列
 - 并发工具类
 
JVM性能测试及监控
- 监控计算机设备层
 
- 监控CPU
 - 监控内存
 - 监控磁盘
 - 监控网络
 
- 监控JVM活动
 
- 监控垃圾收集目的
 - GC垃圾回收报告分析
 - 图形化工具
 - 
									GC跟踪示例
JVM性能调优建议
- JVM相关概念
 
- 内存使用相关概念
 - 字节码相关知识
 - 自动内存管理
 
- JVM系统架构
 
- JVM的基本架构
 - JVM初始化过程
 - JVM架构模型与执行引擎
 - 解释器与JIT编译器
 - 类加载机制
 - 虚拟机
 
- 垃圾回收机制相关
 
- GC相关概念
 - 垃圾回收算法
 - 垃圾收集器
 
- 实用JVM实验
 
- 将新对象预留在年轻代
 - 大对象进入年老代
 - 设置对象进入年老代的年龄
 - 稳定与震荡的堆大小
 - 吞吐量优先案例
 - 使用大页案例
 - 降低停顿案例
 - 设置最大堆内存
 - 设置最小堆内存
 - 设置年轻代
 - 设置持久代
 - 设置线程栈
 - 堆的比例分配
 - 堆分配参数总结
 - 垃圾回收器相关参数总结
 - 
											查询GC命令
其他优化建议
- Java现有机制及未来发展
 
- Java体系结构变化历史
 - Java语言面临的挑战
 - Java8的新特性
 - Java语言前景
 - 物联网:Java和你是一对
 - Java模块化发展
 - OpenJDK的发展
 
- 系统架构优化建议
 
- 系统架构调优
 - Java项目优化方式分享
 - 面向服务架构
 - 程序隔离技术
 - 团队并行开发准则
 
- 与编程无关
 
- 工程师品格
 - 如何成为技术大牛
 - 编程方法分享
 
写在最后
一个程序员的气质是与生俱来+梦想+坚持+机遇组成的,再多的性能优化经验、案例,如果没有人去阅读、尝试,都不会起多大的作用,希望大家在学习的路上都能行动起来,一起攀上技术新高峰!
 
 
 
 
 



京公网安备 11010502036488号