1)jinfo -flags pid 查询虚拟机运行参数信息。
2)jinfo -flag name pid,查询具体参数信息。
3)jmap -heap pid:输出堆内存设置和使用情况(JDK11使用jhsdb jmap --heap --pid pid)
4)jmap -histo pid:输出heap的直方图,包括类名,对象数量,对象占用大小
5)jmap -histo:live pid:同上,只输出存活对象信息
6)jmap -clstats pid:输出加载类信息
7)jmap -help:jmap命令帮助信息
8)jstat -class pid:输出加载类的数量及所占空间信息。
9)jstat -gc pid:输出gc信息,包括gc次数和时间,内存使用状况(可带时间和显示条目参数)
10)jstat -gcutil pid millsecondinterval
11) JConsole pid
12) jcmd 1 VM.uptime 运行时长
13) jcmd 1 VM.flags 当前使用的参数 , jcmd 5296 VM.flags -all 所有参数
14) jinfo -sysprops 1 查询所有当前的系统属性
对应的对象是
[C is a char[]
[S is a short[]
[I is a int[]
[B is a byte[]
[[I is a int[][]
输出堆栈char[]占用内存最大,往往跟String有关,String其内部使用final char[]数组来保存数据的。
发现占用空间较大的对象,分析原因并处理