可以把 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性能调优实战》