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