JDK内置工具使用java
1、javah命令(C Header and Stub File Generator)算法
2、jps命令(Java Virtual Machine Process Status Tool)jvm
3、jstack命令(Java Stack Trace)工具
4、jstat命令(Java Virtual Machine Statistics Monitoring Tool).net
5、jmap命令(Java Memory Map)debug
6、jinfo命令(Java Configuration Info)orm
7、jconsole命令(Java Monitoring and Management Console)server
8、jvisualvm命令(Java Virtual Machine Monitoring, Troubleshooting, and Profiling Tool)对象
9、jhat命令(Java Heap Analyse Tool)blog
打印出某个java进程(使用pid)内存内的,全部‘对象’的状况(如:产生那些对象,及其数量)。
能够输出全部内存中对象的工具,甚至能够将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。若是连用SHELL jmap -histo pid>a.log能够将其保存到文本中去,在一段时间后,使用文本对比工具,能够对比出GC回收了哪些对象。jmap -dump:format=b,file=outfile 3024能够将3024进程的内存heap输出出来到outfile文件里,再配合MAT(内存分析工具(Memory Analysis Tool),使用参见:http://blog.csdn.net/fenglibing/archive/2011/04/02/6298326.aspx)或与jhat (Java Heap Analysis Tool)一块儿使用,可以以图像的形式直观的展现当前内存是否有问题。
64位机上使用须要使用以下方式:
jmap -J-d64 -heap pid
SYNOPSIS
jmap [ option ] pid
jmap [ option ] executable core
jmap [ option ] [server-id@]remote-hostname-or-IP
1)、options:
executable Java executable from which the core dump was produced.
(多是产生core dump的java可执行程序)
core 将被打印信息的core dump文件
remote-hostname-or-IP 远程debug服务的主机名或ip
server-id 惟一id,假如一台主机上多个远程debug服务
2)、基本参数:
-dump:[live,]format=b,file=<filename> 使用hprof二进制形式,输出jvm的heap内容到文件=. live子选项是可选的,假如指定live选项,那么只输出活的对象到文件.
-finalizerinfo 打印正等候回收的对象的信息.
-heap 打印heap的概要信息,GC使用的算法,heap的配置及wise heap的使用状况.
-histo[:live] 打印每一个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*”. 若是live子参数加上后,只统计活的对象数量.
-permstat 打印classload和jvm heap长久层的信息. 包含每一个classloader的名字,活泼性,地址,父classloader和加载的class数量. 另外,内部String的数量和占用内存数也会打印出来.
-F 强迫.在pid没有相应的时候使用-dump或者-histo参数. 在这个模式下,live子参数无效.
-h | -help 打印辅助信息
-J 传递参数给jmap启动的jvm.
pid 须要被打印配相信息的java进程id,创业与打工的区别 - 博文预览,能够用jps查问.
1)、[fenglb@ccbu-156-5 ~]$ jmap -histo 4939
[输出较多这里不贴了]
2)、[fenglb@ccbu-156-5 ~]$ jmap -dump:format=b,file=test.bin 4939
Dumping heap to /home/fenglb/test.bin ...
Heap dump file created
本文出自:冯立彬的博客