1.查看Java命令参数
java -help
2.查看JVM版本
java -version
java -XX:+PrintCommandLineFlags -version
3.通过-D设置系统属性参数
java -D<名称>=<值>
4.查看非标准参数
java -X
5.设置jvm的堆内存初始大小和最大大小
java -Xms512m -Xmx2048m TestVM
6.打印jvm运行参数
java -XX:+PrintFlagsFinal -version
7.jinfo命令使用
(1)查看Java进程xxx的JVM参数
jinfo -flags <pid>
(2)查看Java进程xxx的指定JVM参数
jinfo -flag ConcGCThreads <pid>
8.通过jstat命令进行查看堆内存使用情况
(1)查看class加载数统计
jstat -class <pid>
(2)查看编译统计
jstat -compiler <pid>
(3) 垃圾回收统计
jstat -gc <pid>
(4)查看进程的GC信息 间隔1秒1次,打印5次
jstat -gc <pid> 1000 5
9.jmap命令使用
(1)查看内存使用情况
jmap -heap <pid>
(2)查询内存中对象数量及大小(包括活跃以及非活跃对象)
jmap -histo <pid> | more
(3)查询内存中对象数量及大小(活跃对象)
jmap -histo:live <pid> | more
(4) 将内存使用情况dump到文件中
jmap -dump:format=b,file=/tmp/dump.dat <pid>
10.通过jhat分析dump文件
(1) jhat -port 8888 /tmp/dump.dat
(2) 通过浏览器访问 http://localhost:8888
(3)见学习笔记
11.MAT工具使用
(1)下载 https://eclipse.dev/mat/previousReleases.php
(2)见学习笔记
12.当发生内存溢出时,自动dump文件
-XX:+HeapDumpOnOutOfMemoryError
13.jvisualvm使用
见学习笔记