pragmatic-java-engineer
  • 引言
  • 第一章 后端技术导言
    • 1.1 后端基础设施
    • 1.2 Java后端技术概览
    • 1.3 如何学习后端技术
  • 第二章 Java项目工程化
    • 2.1 项目构建
    • 2.2 代码版本控制
    • 2.3 代码质量保证
  • 第三章 开发框架
    • 3.1 依赖注入
    • 3.2 对象关系映射
    • 3.3 日志
    • 3.4 Web MVC
    • 3.5 总结
  • 第四章 Spring
    • 4.1 Spring核心组件
    • 4.2 Spring数据操作框架
    • 4.3 使用Spring Boot快速开发
    • 4.4 Spring常用组件
    • 4.5 总结
  • 第五章 数据存储
    • 5.1 关系型数据库-MySQL
    • 5.2 非关系型数据库
    • 5.3 缓存
    • 5.4 搜索引擎-Elasticsearch
    • 5.5 总结
  • 第六章 数据通信
    • 6.1 RESTful架构风格
    • 6.2 远程过程调用-RPC
    • 6.3 消息中间件
    • 6.4 总结
  • 第七章 Java编程进阶
    • 7.1 Java内存管理
    • 7.2 Java网络编程
    • 7.3 Java并发编程
    • 7.4 Java开发利器
    • 7.5 Java新版本特性
    • 7.6 总结
  • 第八章 性能调优
    • 8.1 调优准备
    • 8.2 性能分析
    • 8.3 性能调优
    • 8.4 总结
  • 第九章 安全技术
    • 9.1 Java加密
    • 9.2 安全HTTP - HTTPS
    • 9.3 Web安全
  • 附录A: 代码构建常用命令
  • 附录B: Git常用命令
  • 附录C: MySQL常用命令
  • 附录D: MongoDB常用命令
  • 附录E: Java调优常用命令
  • 附录F: 如何应对在线故障
  • 附录G: 架构简明指南
Powered by GitBook
On this page

第八章 性能调优

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

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

  • 硬件配置

  • 操作系统

  • 应用程序

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

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

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

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

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

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

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

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

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

Previous7.6 总结Next8.1 调优准备

Last updated 1 year ago