可以把 Java 性能调优分成 5 个层级:Java 编程、多线程、JVM 性能检测、设计模式、数据库性能,每个层级下都覆盖了最常见的优化问题。
第 1 层:Java 编程性能调优
JDK 是 Java 语言的基础库,熟悉JDK中各个包中的工具类,可以帮助你编写出高性能代码。
- 字符串性能优化
- 正则表达式
- 容器使用优化
- I/O优化
- 序列化优化
- 网络通信优化
第 2 层:多线程性能调优
目前大部分服务器都是多核处理器,多线程编程的应用广泛。为了保证线程的安全性,通常会用到同步锁,这会为系统埋下很多隐患;除此之外,还有多线程高并发带来的性能问题
- 同步锁的具体优化
- 乐观锁优化并发操作
- 上下文切换优化
- 并发容器
- 线程池优化
第 3 层:JVM 性能监测及调优
Java 应用程序是运行在JVM之上的,对JVM进行调优可以提升系统性能。这个层级重点讲解Java对象的创建和回收、内存分配等。
- Java编译优化
- 了解JVM
- 垃圾回收优化
- JVM内存分配优化
- JVM性能监控与排查
第 4 层:设计模式调优
在架构设计中,我们经常会用到一些设计模式来优化架构设计。
- 单例模式
- 原型模式与享元模式
- 常用的并发编程设计模式
- 生产者消费者模式
- 装饰器模式
第 5 层:数据库性能调优
数据库最容易成为整个系统的性能瓶颈。
- Mysql调优之Sql语句
- MySQL调优之事务
- MySQL调优之索引
- 读写分离的必要性
- 分表分库
- 电商系统表设计优化
- 数据库参数设置优化
对于Java 性能优化,不仅要理解系统架构、应用代码,还需要关注JVM层甚至操作系统底层。有时候,深入理解 Java 底层源码就能达到事半功倍的效果。除了上面提到的问题,性能调优还遵循一些通用的原则,比如说按需优化、二八原则、创建性能测试套件等等。
参考书籍:《Java性能调优实战》