uptimejava
當前時間 1:01 系統已運行的時間 1:42 當前在線用戶 3 user 平均負載:3.62, 3.39, 3.24,最近1分鐘、5分鐘、15分鐘系統的負載
topide
jps函數
列出java進程,相似於ps命令 參數-q能夠指定jps只輸出進程ID ,不輸出類的短名稱 參數-m能夠用於輸出傳遞給Java進程(主函數)的參數 參數-l能夠用於輸出主函數的完整路徑 參數-v能夠顯示傳遞給JVM的參數 jps 6260 Jps 7988 Main 400 jps -q 7988 7152 jps -m jps -m -l jps -m -l -v
jinfo工具
能夠用來查看正在運行的Java應用程序的擴展參數,甚至支持在運行時,修改部分參數 -flag <name>:打印指定JVM的參數值 -flag [+|-]<name>:設置指定JVM參數的布爾值 -flag <name>=<value>:設置指定JVM參數的值
顯示了新生代對象晉升到老年代對象的最大年齡.net
jinfo -flag MaxTenuringThreshold 2972
-XX:MaxTenuringThreshold=15線程
顯示是否打印GC詳細信息日誌
jinfo -flag PrintGCDetails 2972
-XX:-PrintGCDetailscode
運行時修改參數,控制是否輸出GC日誌orm
jinfo -flag PrintGCDetails 2972
-XX:-PrintGCDetails對象
jinfo -flag +PrintGCDetails 2972 jinfo -flag PrintGCDetails 2972
-XX:+PrintGCDetails
jmap
生成Java應用程序的堆快照和對象的統計信息
jmap -histo 6292 >/Users/heliming/image/a.log
Dump堆
jmap -dump:format=b,file=/Users/heliming/image/heap.hprof 6292
jstack
打印線程dump -l 打印鎖信息 -m 打印java和native的幀信息 -F 強制dump,當jstack沒有響應時使用
jstack 6292 >>/Users/heliming/image/a.txt
jstack 6292
public class DeadLockDemo { private static String A = "A"; private static String B = "B"; static class Test { public static void main(String[] args) throws InterruptedException { new DeadLockDemo().deadLock(); } } /** * 線程死鎖 */ private void deadLock() { Thread t1 = new Thread(new Runnable() { @Override public void run() { synchronized (A) { try { Thread.currentThread().sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } synchronized (B) { System.out.println("1"); } } } }); Thread t2 = new Thread(new Runnable() { @Override public void run() { synchronized (B) { synchronized (A) { System.out.println("2"); } } } }); t1.start(); t2.start(); } }
jvisualvm jdk的bin下可視化檢測工具 使用:https://my.oschina.net/u/3730149/blog/write/3109370 第十條