Java 性能调优对于每一个奋战在开发一线的技术人来说,都是老生常谈的问题了。特别当“糙快猛”的开发模式大行其道时,随着系统访问量的增加、代码的臃肿,各种性能问题便会层出不穷。比如,下面这些典型的性能问题,你肯定或多或少都遇到过:
- 在进行性能测试时,接口响应时间长,吞吐量低;
- 在高并发下,JVM 中 Full GC 异常,JVM 堆内存溢出;
- 由于业务增长迅猛,大量读写操作单表单库,造成数据库死锁。
日渐复杂的系统,错综复杂的性能调优,都对Java工程师的技术广度和技术深度提出了更高的要求。那么怎样才能做好性能调优呢?
在作者看来,Java 性能调优和学一门编程语言不同,前者无法通过直线式的思维来掌握和应用。他认为,扎实的计算机基础,透过源码看技术本质的良好习惯,善于追问和总结才是做好性能调优的大前提。
因此,在这个专栏里,他将结合自己多年的从业经验,从 Java 应用服务的每一层优化实战出发,精选高频性能问题,透过 Java 底层源码,提炼出优化思路和它背后的实现原理,最后形成一套“学完就能用的调优方法论”,帮助你快速进阶。
具体内容上,专栏共分为七大模块。
模块一,概述。这个模块将为你建立两个标准。一个是性能调优标准,另一个是调优过程标准,为性能调优实战做好准备。
模块二,Java 编程性能调优。这个模块将从基础的数据类型讲起,涉及容器在实际应用场景中的调优,还有现在互联网系统架构中比较重要的网络通信调优。
模块三,多线程性能调优。如何做锁优化?如何优化多线程上下文切换?如何用协程来优化多线程业务?这些问题都会在这个模块重点讲解。
模块四,JVM 性能监测及调优。Java 应用程序是运行在 JVM 之上的,对 JVM 进行调优可以提升系统性能。这个模块将重点讲解 Java 对象的创建和回收、内存分配等问题。
模块五,设计模式调优。设计模式可以优化架构设计,这个模块将结合一些复杂的应用场景,解析设计优化案例。
模块六,数据库性能调优。数据库最容易成为整个系统的性能瓶颈,这个模块会重点解析一些数据库的常用调优方法。
模块七,实战演练场。这个模块将带你进入综合性能问题高频出现的应用场景,综合应用前面六大模块的内容,学习整体调优方法。