JDK經常使用工具

JDK的命令行工具

jps

查看正在使用的jvm機器進程號。html

java -classpath %Java_HOME%/lib/tools.jar sun.tools.jps.Jps命令是等價的,即jps.exe只是這個命令的一層包裝。java

經常使用命令,-l顯示正在運行的jar包或者軟件(基於jvm),-v顯示當前進程詳細的jvm參數oracle

jps -ljvm

jps -vide

jinfo

和jps差很少,要指定pid。顯示當前jvm環境的全部配置工具

javap

反彙編命令,查看class字節碼指令性能

-c是反彙編,爲了顯示方法內的指令,不帶-c只能看方法簽名,因此大部分時候都要使用-c。spa

-l能夠查看輸出行號和本地變量表,局部變量表(指令區-》虛擬機棧-》棧幀-》局部變量表)。命令行

-v輸出附加信息,能夠查看常量的值。(-v包含-c -l)線程

javap -c -l className.class > javap_1.txt

字節碼詳解

導出內存

jmap(JVM Memory Map for Java)

jmap用於生成堆快照(heapdump)。

jmap -heap 7180     #查看堆內存配置:堆(年輕代老年代)和方法區(永久代)jmap -dump:file=./dumpfile.dump 14320   #直接down對內存並指定文件名1.61G jmap -dump:format=b,file=./heap.bin 14320   #以二進制形式導入到文件jmap -dump:live,file=./jmap.hprof 14320  #只導出正在活動的對象(沒有實例的不導出)  -F強制模式jmap -histo:live 14320|grep className  #顯示什麼類有多少個實例,共佔了多少字節jmap -permstat 14320   #查看永久代

jstack(JVM Stack Trace for java)

jstack用於JVM當前時刻的線程快照,又稱threaddump文件,它是JVM當前每一條線程正在執行的堆棧信息的集合。

jstack -l 7180  >> stack.txt

JHAT(JVM Heap Analysis Tool)

用來分析java堆的命令,能夠將堆中的對象以html的形式顯示出來,包括對象的數量,大小等等,並支持對象查詢語言。

jhat *.hprof/dump/tdump

https://docs.oracle.com/javase/6/docs/technotes/tools/share/jmap.html

JDK可視化工具

JConsole:用來內存監控、線程監控。

JVisualVM:強大的運行監控和故障處理程序,還有性能分析等功能。對性能影響小,可直接用於生產環境。

相關文章
相關標籤/搜索