面试官 :Java 调优经验有吗?

文章目录

  • 调优准备
  • 性能分析
    • CPU分析
    • jstack [pid]
    • jstat -gcutil [pid]
    • vmstat 1 5
  • 内存分析
  • IO分析
    • 1. 文件IO
    • 2. 网络IO
  • 其他分析工具
    • Java Mission Control(jmc)
    • Btrace
    • Jwebap
  • 性能调优
    • CPU调优
    • 内存调优
  • IO调优
  • 其他优化建议
  • JVM参数进阶

对于调优这个事情来说,一般就是三个过程:

  • 性能监控:问题没有发生,你并不知道你需要调优什么?此时需要一些系统、应用的监控工具来发现问题。
  • 性能分析:问题已经发生,但是你并不知道问题到底出在哪里。此时就需要使用工具、经验对系统、应用进行瓶颈分析,以求定位到问题原因。
    性能调优:经过上一步的分析定位到了问题所在,需要对问题进行解决,使用代码、配置等手段进行优化。

Java调优也不外乎这三步。

此外,本文所讲的性能分析、调优等是抛开以下因素的:

  • 系统底层环境:硬件、操作系统等
  • 数据结构和算法的使用
  • 外部系统如数据库、缓存的使用

调优准备

调优是需要做好准备工作的,毕竟每一个应用的业务目标都不尽相同,性能瓶颈也不会总在同一个点上。在业务应用层面,我们需要:

  • 需要了解系统的总体架构,明确压力方向。比如系统的哪一个接口、模块是使用率最高的,面临高并发的挑战。
  • 需要构建测试环境来测试应用的性能,使用ab、loadrunner、jmeter都可以。
  • 对关键业务数据量进

你可能感兴趣的:(Java生态圈,大中IT企业面试题整理,java,数据库,开发语言)