以显示当前系统中所有java进程

查看正在运行的Java程序的扩展参数

等同于System.getProperties()

jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令格式:
jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3lQNXgmo-1589759922630)(https://cdn.nlark.com/yuque/0/2020/png/440247/1588648393408-1f50f937-d6c6-4766-8747-ff4d96039ba3.png#align=left&display=inline&height=200&margin=%5Bobject%20Object%5D&name=image.png&originHeight=200&originWidth=1583&size=546355&status=done&style=none&width=1583)]






可以用来查看内存信息
**
jmap -histo 29420 > xxx.txt



也可以在设置内存溢出的时候自动导出dump文件(内存很大的时候,可能会导不出来)
1.-XX:+HeapDumpOnOutOfMemoryError
2.-XX:HeapDumpPath=输出路径
-Xms10m -Xmx10m -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError - XX:HeapDumpPath=E:\java-learning\oomdump.dump
public class OutOfMemoryDump {
/**
* 设置JVM参数
* -Xms10m
* -Xmx10m
* -XX:+PrintGCDetails
* -XX:+HeapDumpOnOutOfMemoryError
* -XX:HeapDumpPath=路径
*/
public static void main(String[] args) {
//-Xms10m -Xmx10m -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=E:\java-learning
List<Object> list = new ArrayList<>();
int i = 0;
while(true){
list.add(new User(i++, UUID.randomUUID().toString()));
}
}
}


可以使用jvisualvm命令工具导入文件分析

jstack用于生成java虚拟机当前时刻的线程快照
