前言
Java性能优化,它存在的理由有很多。计算机面对海量数据或者任务时,无论如何你都会碰到性能压力,唯一的选择是你会把这个压力放在哪一层或者哪一个位置来应对,以及采取什么应对措施。程序凑合着上线是一回事,而在压力下能够优美地运行往往很不容易。
通常来说Java性能优化一般包含这五方面:
- 设计优化
- 代码优化
- JVM优化
- 数据库优化
- 操作系统优化
可以说性能调优在很大程度上是一门艺术,解决的Java性能问题越多,技艺才会越精湛。我们不仅要关心JVM的持续演进,也要积极地去了解底层的硬件平台和操作系统的进步。
本文互联网雷锋(小编我)要为大家介绍的Alibaba内部性能优化进阶笔记就不仅仅只针对JVM调优进行讲解,每一章节都有实际的案例支撑。具体包括:性能优化策略.程序编写及硬件服务器的基础知识、Java API优化建议、算法类程序的优化建议、并行计算优化建议、Java程序性能监控及检测、JVM原理知识等。大家可以深入了解Java性能调优的许多主题及相关的综合性知识。
话不多说,下面我就把文档的主要内容展示出来,由于篇幅限制只能以截图的方式展示,需要高清版PDF的朋友,可以点击此处来获取就可以了!
性能调优策略概述
- 为什么需要调优
- 性能优化的参考因素
- 传统计算机体系的分歧
- 导致系统瓶颈的计算资源
- 程序性能衡量指标
- 性能优化目标
- 性能优化策略
- 性能调优分类方法
- 业务方面
- 基础技术方面
- 组件方面
- 架构方面
- 层次方面
优化前的准备知识
- 服务器知识
- 内存
- 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内部性能优化进阶笔记感兴趣,可以点击此处来获取就可以了!