一.命令行工具
- jps
相当于Linux操作系统的ps (windows进程中的tasklist), 用来显示java进程号。
用法 :
jps [-option]
参数 :
-l :显示全类名
-q:省略类名只显示端口号
-v:显示虚拟机的参数
-m:显示运行主类的参数 - jstat
显示类加载的信息
内存分布,垃圾收集, jit编辑信息,类装载信息等
jsta - gcutil 端口号 次数
- jinfo
jinfo -flag 端口号
查看或者修改虚拟机的某个参数
java -XX:+PrintFlagsFinal也可以进行 - jmap
生成快照信息
jmap -dump:format=b,file=d:\a.bin 8008
- jhat
分析快照中的类
jhat d:\a.bin
访问本地的7000端口会出现全部的类信息。 - jstack
jstack [option] vmid
-l 显示附加的锁的信息
-F 强制
-m 如果调用本地方法可以显示C/C++堆栈
#用来打印thread信息
Map<Thread, StackTraceElement[]>map = Thread.getAllStackTraces();
for(Map.Entry<Thread, StackTraceElement[] >en : map.entrySet()){
Thread t = en.getKey();
StackTraceElement[] v = en.getValue();
System.out.println("Thread:" + t.getName());
for(StackTraceElement s : v){
System.out.println("\t" + s.toString());
}