摘要:本文首先介绍了负载测试、基于 APM 工具的应用程序和服务器监控,随后介绍了编
写高性能 Java 代码的一些最佳实践。最后研究了 JVM 特定的调优技巧、数据库端的优化和
架构方面的调整。以下是译文。
介绍
在这篇文章中,我们将讨论几个有助于提升 Java 应用程序性能的方法。我们首先将介绍如
何定义可度量的性能指标,然后看看有哪些工具可以用来度量和监控应用程序性能,以及确
定性能瓶颈。
我们还将看到一些常见的 Java 代码优化方法以及最佳编码实践。最后,我们将看看用于提
升 Java 应用程序性能的 JVM 调优技巧和架构调整。
请注意,性能优化是一个很宽泛的话题,而本文只是对 JVM 探索的一个起点。
性能指标
在开始优化应用程序的性能之前,我们需要理解诸如可扩展性、性能、可用性等方面的非功
能需求。
以下是典型 Web 应用程序常用的一些性能指标:
应用程序平均响应时间
系统必须支持的平均并发用户数
在负载高峰期间,预期的每秒请求数
这些指标可以通过使用多种监视工具监测到,它们对分析性能瓶颈和性能调优有着非常大的
作用。
示例应用程序
我们将使用一个简单的 Spring Boot Web 应用程序作为示例,在这篇文章中有相关的介绍。
这个应用程序可用于管理员工列表,并对外公开了添加和检索员工的 REST API。
我们将使用这个程序作为参考来运行负载测试,并在接下来的章节中监控各种应用指标。
找出性能瓶颈
负载测试工具和应用程序性能管理(APM)解决方案常用于跟踪和优化 Java 应用程序的性
能。要找出性能瓶颈,主要就是对各种应用场景进行负载测试,并同时使用 APM 工具对
CPU、IO、堆的使用情况进行监控等等。
Gatling 是进行负载测试最好的工具之一,它提供了对 HTTP 协议的支持,是 HTTP 服务器负
载测试的绝佳选择。