第八章 性能调优

实际的开发工作中,有时候会遇到程序突然变得响应缓慢或者进程消失的情况。这时候就需要对程序进行问题排查和调优,找出产生问题的根源,并进行优化。

一般来说,影响程序性能的因素主要有以下几个:

  • 硬件配置

  • 操作系统

  • 应用程序

CPU、内存、硬盘等硬件配置从根本上决定了应用的性能,而对于网络应用,带宽也是影响其性能的关键因素。本章暂且抛开这些方面不讲,主要讲述针对操作系统和应用程序的调优方法。又可以分为:

  • 系统调优: 针对操作系统的配置调优。

  • Java调优:针对Java应用的调优,包括JVM和代码。

  • 外部系统调优:针对应用程序依赖的外部系统如数据库、缓存、Web服务器等的调优。

共性的,无论是哪一个层面的调优,性能调优都可以分为以下三个步骤:

  • 性能监控:此步骤可以描述为"我并不知道我要做什么",在系统没有出现问题以前,是没有调优的动机和需求的(当然凭借经验预判除外)。需要监控机制来发现、暴露系统的性能问题。这里一般依赖于系统级别或者业务级别的监控工具。

  • 性能分析:此步骤可以描述为"我知道我要做什么",当性能监控发现问题的时候,那么调优的动机就来了。这时你就知道该要去解决什么样的问题了。带着这个问题去做各个层面的分析。此步骤则需要一些性能分析工具。

  • 性能调优:此步骤可以描述为“我知道我需要知道什么了”,经过性能分析,你最终会知道是什么原因造成了问题,该需要怎么做才能够使得性能提高。这一步通常是需要系统、程序参数的调整、代码的重构优化等。

外部系统的调优在前面的各个章节中已经做了一些阐述,本章主要讲述系统调优和Java调优。

Last updated