JDK常用工具


JDK的命令行工具

jps

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

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

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

jps -l

jps -v

jinfo

和jps差不多,要指定pid。顯示當前jvm環境的所有配置

javap

反匯編命令,查看class字節碼指令

-c是反匯編,為了顯示方法內的指令,不帶-c只能看方法簽名,所以大部分時候都要使用-c。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM