一.命令行工具
- 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());
}