Java內建常用記憶體分析工具使用教程
阿新 • • 發佈:2018-11-29
jstack
列印記憶體使用情況
jstat -gc 25221 1000 60
取樣
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT 16896.0 26624.0 0.0 0.0 390656.0 320417.8 94720.0 32012.7 35496.0 34784.0 4400.0 4150.3 10 0.199 2 0.146 0.344 16896.0 26624.0 0.0 0.0 390656.0 320417.8 94720.0 32012.7 35496.0 34784.0 4400.0 4150.3 10 0.199 2 0.146 0.344 16896.0 26624.0 0.0 0.0 390656.0 320417.8 94720.0 32012.7 35496.0 34784.0 4400.0 4150.3 10 0.199 2 0.146 0.344 16896.0 26624.0 0.0 0.0 390656.0 320417.8 94720.0 32012.7 35496.0 34784.0 4400.0 4150.3 10 0.199 2 0.146 0.344 16896.0 26624.0 0.0 0.0 390656.0 320417.8 94720.0 32012.7 35496.0 34784.0 4400.0 4150.3 10 0.199 2 0.146 0.344 16896.0 26624.0 0.0 0.0 390656.0 320417.8 94720.0 32012.7 35496.0 34784.0 4400.0 4150.3 10 0.199 2 0.146 0.344
jstat -compiler 17970
取樣
Compiled Failed Invalid Time FailedType FailedMethod
4316 0 0 29.73 0
jstat -class 25221 1000 60
取樣
Loaded Bytes Unloaded Bytes Time 7819 16075.0 0 0.0 12.90 7819 16075.0 0 0.0 12.90 7819 16075.0 0 0.0 12.90 7819 16075.0 0 0.0 12.90 7819 16075.0 0 0.0 12.90
位元組碼檔案解析
javap -verbose ConfigConstant.class
動態顯示JVM中記憶體使用情況
jstat -gcutil 1159 3000 60
取樣
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT 0.00 0.00 74.18 33.80 97.99 94.32 10 0.199 2 0.146 0.344 0.00 0.00 74.18 33.80 97.99 94.32 10 0.199 2 0.146 0.344 0.00 0.00 74.18 33.80 97.99 94.32 10 0.199 2 0.146 0.344 0.00 0.00 74.18 33.80 97.99 94.32 10 0.199 2 0.146 0.344 0.00 0.00 74.18 33.80 97.99 94.32 10 0.199 2 0.146 0.344 0.00 0.00 75.18 33.80 97.99 94.32 10 0.199 2 0.146 0.344 0.00 0.00 75.18 33.80 97.99 94.32 10 0.199 2 0.146 0.344 0.00 0.00 77.19 33.80 97.99 94.32 10 0.199 2 0.146 0.344
配置資訊
jmap -heap 1159
檢視各個類的例項數
jmap -histo 1159
取樣
num #instances #bytes class name
----------------------------------------------
1: 1028563 139703824 [C
2: 432882 102647352 [B
3: 47202 63104768 [I
4: 452434 10858416 java.lang.String
5: 99499 8154264 [Ljava.lang.Object;
6: 73227 5881088 [S
7: 53191 4680808 java.lang.reflect.Method
8: 41073 3715664 [Ljava.util.HashMap$Node;
9: 123471 2963304 java.lang.StringBuilder
10: 49516 2376768 java.util.HashMap
執行緒堆疊資訊
jstack 1159
2018-11-28 23:46:12
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.152-b16 mixed mode):
"Attach Listener" #64 daemon prio=9 os_prio=31 tid=0x00007fd2fb370800 nid=0x7807 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"[email protected]" #59 daemon prio=5 os_prio=31 tid=0x00007fd2f9fdf000 nid=0x7603 in Object.wait() [0x000070000c2a3000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000079acf0840> (a java.util.TaskQueue)
at java.util.TimerThread.mainLoop(Timer.java:552)
- locked <0x000000079acf0840> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:505)
"Druid-ConnectionPool-Destroy-230485473" #58 daemon prio=5 os_prio=31 tid=0x00007fd2fa488000 nid=0x8103 waiting on condition [0x000070000c1a0000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at com.alibaba.druid.pool.DruidDataSource$DestroyConnectionThread.run(DruidDataSource.java:2181)
其他
jmap -dump:format=b,file=jvm.log 1159
jhat tomcat.bin