java程序要与当前执行shell的用户一致才能执行。

先使用jps -l找出java程序的pid;

jmap -heap pid:打印堆使用的概况;

jmap -clstats pid:打印出类加载器使用情况,主要用来看加载的类的数量,jdk8及以后才可使用。之前版本的jdk使用jmp -perstats pid命令;

jmap -histo[:live] pid:打印heap中各类的实例数目,倒序排。加上live参数只打印活着的对象;

jmap -finalizerinfo pid:F队列中等待执行finalize方法的对象的数目;

最后一个常用的是dump命令,把java堆的快照的二进制导出来:jmap -dump:format=b,file=location pid,生成的文件可以使用jvisualvm工具查看分析。

也可以加live参数只打印或者的对象:jmap -dump:live,format=b,file=gc.dhump pid