本文主要是介绍Java jmap与jcmd命令dump内存heap堆,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
//获取当前Java程序的进程id
long pid = ProcessHandle.current().pid();
//jmap与jcmd两种命令方式效果相同,均为dump内存
String[] cmd1 = {"jmap", "-dump:live,formt=b,file=D:/dump/jmap.hprof", String.valueOf(pid)};
String[] cmd2 = {"jcmd", String.valueOf(pid), "GC.heap_dump", "D:/dump/jcmd.hprof"};
try {
Runtime.getRuntime().exec(cmd1);
Runtime.getRuntime().exec(cmd2);
} catch (IOException e) {
e.printStackTrace();
}
try {
//等待输入任意按钮结束程序。如果没有这一段代码,程序很快返回后,dump内存来不及处理,没有日志输出。
System.in.read();
} catch (IOException e) {
e.printStackTrace();
}
这篇关于Java jmap与jcmd命令dump内存heap堆的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!