# JVM 参数及调优

Posted MarlonBrando1998

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了# JVM 参数及调优相关的知识,希望对你有一定的参考价值。

JVM 参数及调优


Java 常用命令

Javac

功能
  • 将Java源代码换成字节代码
命令格式
  • javac One.java

Javap

功能
  • javapJDK自带的反编译器,可以查看编译器生成的字节码,用于分解class文件
  • 反编译编译产生.class文件
命令格式
  • javap -p -v JvmTest.class
  • javap -l:输出行号和本地变量表信息
  • javap -c:会对当前class字节码进行反编译生成汇编代码

Jmap

功能
  • 生成快照文件
  • 查看对内对象的统计信息
  • 查看类加载器的信息
命令格式
  • pid:需要打印信息的进程
  • jmap -dump:format=b,file=test.hprof 2680:生成线程快照

Jstack

功能
  • 打印指定java进程IDJava堆栈信息
  • 针对Core文件做线程dump
命令格式
  • jstack pid
  • jstack 2680 >test.txt:将堆栈信息添加到文件当中

Jstat

功能
  • 查看堆内存各部分的使用量、以及加载类的数量等。
命令格式
  • jstat -gc 2680:垃圾回收机制
  • jstat -gcutil 2680 2000:每隔2s统计一波

JInfo

功能
  • 用来查看正在运行的Java应用程序的扩展参数、包括Java System属性和JVM命令行参数,也可以动态的修改正在运行的JVM一些参数。
命令格式
  • jinfo -flags 2680:输出全部的参数

  • jinfo 2680:输出当前Jvm进程的全部参数和系统属性


Javadoc

功能
  • 可以从程序源代码中抽取类、方法、成员等注释、然后形成一个和源代码配套的API帮助文档
命令格式
  • javadoc -author -version JvmTest.java:为java文件生成Javadoc文档
    在这里插入图片描述

JConsole

功能
  • java自带的Jvm可视化工具
命令格式
  • jconsole
    在这里插入图片描述

Jvisualvm

功能
  • 监控内存泄露,跟踪垃圾回收,执行时内存、cpu分析,线程分析等。
命令格式
  • jvisualvm

在这里插入图片描述


Jvm调优

何时调优

  • Heap内存达到设置的最大内存值
  • Full Gc次数过于频繁
  • 堆栈溢出
  • 应用中有使用本地缓存且占用大量内存空间
  • 系统吞吐量与响应性能不高或下降

调优目标

  • 延迟:GC低停顿和GC低频率
  • 低内存占用
  • 高吞吐量

尽可能的去达到性能最佳,选择其中的两个进行调优,不可三者兼得

调优步骤

  • 分析GC日志快照文件,判断是否需要优化
  • 确定JVM调优参数
  • 对比观察调优前后的差异
  • 不断的分析和调整,直到找到合适的JVM参数配置

Jvm参数

常用参数

  • -Xms:堆的初始值,java堆的大小

  • -Xmx:堆能达到的最大值

以上是关于# JVM 参数及调优的主要内容,如果未能解决你的问题,请参考以下文章

JVM参数及调优

JVM参数及调优

JVM参数及调优

七:JVM调优工具详解及调优实战

性能调优之JVM调优GC性能指标及调优实战

Day701.JVM GC原理及调优的基本思路 -深入拆解 Tomcat & Jetty