前言
Java性能优化,它存在的理由有很多。计算机面对海量数据或者任务时,无论如何你都会碰到性能压力,唯一的选择是你会把这个压力放在哪一层或者哪一个位置来应对,以及采取什么应对措施。程序凑合着上线是一回事,而在压力下能够优美地运行往往很不容易。
通常来说Java性能优化一般包含这五方面:
1.设计优化
2.代码优化
3.JVM优化
4.数据库优化
5.操作系统优化
可以说性能调优在很大程度上是一门艺术,解决的Java性能问题越多,技艺才会越精湛。我们不仅要关心JVM的持续演进,也要积极地去了解底层的硬件平台和操作系统的进步。
本文互联网雷锋(小编我)要为大家介绍的Alibaba内部性能优化进阶笔记就不仅仅只针对JVM调优进行讲解,每一章节都有实际的案例支撑。具体包括:性能优化策略.程序编写及硬件服务器的基础知识、Java API优化建议、算法类程序的优化建议、并行计算优化建议、Java程序性能监控及检测、JVM原理知识等。大家可以深入了解Java性能调优的许多主题及相关的综合性知识。
话不多说,下面我就把文档的主要内容展示出来,由于篇幅限制只能以截图的方式展示,需要高清版PDF的朋友,点赞关注我支持一下,然后直接前往Github:传送门 即可得到免费获取方式
性能调优策略概述
为什么需要调优
性能优化的参考因素
传统计算机体系的分歧
导致系统瓶颈的计算资源
程序性能衡量指标
性能优化目标
性能优化策略
性能调优分类方法
业务方面
基础技术方面
组件方面
架构方面
层次方面
优化前的准备知识
服务器知识
内存
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项目优化方式分享
面向服务架构
程序隔离技术
团队并行开发准则
与编程无关
工程师品格
如何成为技术大牛
编程方法分享
写在最后
一个程序员的气质是与生俱来+梦想+坚持+机遇组成的,再多的性能优化经验、案例,如果没有人去阅读、尝试,都不会起多大的作用,希望大家在学习的路上都能行动起来,一起攀上技术新高峰!
如果你对这份Alibaba内部性能优化进阶笔记感兴趣,只需要
点赞文章,关注我之后访问Github地址:传送门 即可免费获取!