# JVM 参数及调优
Posted MarlonBrando1998
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了# JVM 参数及调优相关的知识,希望对你有一定的参考价值。
JVM 参数及调优
Java 常用命令
Javac
功能
- 将Java源代码换成字节代码
命令格式
javac One.java
Javap
功能
javap
是JDK
自带的反编译器,可以查看编译器生成的字节码,用于分解class
文件- 反编译编译产生
.class
文件
命令格式
javap -p -v JvmTest.class
javap -l
:输出行号和本地变量表信息javap -c
:会对当前class
字节码进行反编译生成汇编代码
Jmap
功能
- 生成快照文件
- 查看对内对象的统计信息
- 查看类加载器的信息
命令格式
pid
:需要打印信息的进程jmap -dump:format=b,file=test.hprof 2680
:生成线程快照
Jstack
功能
- 打印指定
java进程ID
的Java
堆栈信息 - 针对
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 参数及调优的主要内容,如果未能解决你的问题,请参考以下文章