第四章:java虛拟機指令行工具
1:jps指令行程序狀況工具 jps [options] [hostid]
C:\Users\lenovo>jps -l
13824 sun.tools.jps.Jps
14224 org.jetbrains.jps.cmdline.Launcher
8528 org.jetbrains.idea.maven.server.RemoteMavenServer
12660 org.jetbrains.jps.cmdline.Launcher
7316
11544
236 com.li.SpringBootLabApplication //主類
2:jstat 用于監視虛拟機各種運作狀态資訊的指令行工具。包括類裝載,記憶體,垃圾收集,JIT編譯等資料
jstat [option vmid [interval [s|ms][count]]]
option 代表使用者希望查詢的虛拟機資訊
例如每250毫秒查詢一次程序236的垃圾回收資訊,查詢20次

3:jinfo 列印java配置資訊
列印程序
jinfo 236的資訊
C:\Users\lenovo>jinfo 236
Attaching to process ID 236, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.161-b12
Java System Properties:
java.runtime.name = Java(TM) SE Runtime Environment
java.vm.version = 25.161-b12
sun.boot.library.path = D:\software\jdk\jdk8\jdk1.8.0_161\jre\bin
java.vendor.url = http://java.oracle.com/
java.vm.vendor = Oracle Corporation
path.separator = ;
file.encoding.pkg = sun.io
java.vm.name = Java HotSpot(TM) 64-Bit Server VM
sun.os.patch.level =
sun.java.launcher = SUN_STANDARD
user.script =
user.country = CN
user.dir = D:\software\github\github下載下傳\laboratoryWeb
java.vm.specification.name = Java Virtual Machine Specification
PID = 236
java.runtime.version = 1.8.0_161-b12
java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment
os.arch = amd64
java.endorsed.dirs = D:\software\jdk\jdk8\jdk1.8.0_161\jre\lib\endorsed
org.jboss.logging.provider = slf4j
line.separator =
java.io.tmpdir = C:\Users\lenovo\AppData\Local\Temp\
java.vm.specification.vendor = Oracle Corporation
user.variant =
os.name = Windows 10
sun.jnu.encoding = GBK
java.library.path = D:\software\jdk\jdk8\jdk1.8.0_161\bin;C:\Users\lenovo\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm\5.0.3\dcc2193db20e19e1feca8b1240dbbc4e190824fa\asm-5.0.3.jar;D:\software\ideaj\ideaIC-2017.3.4.win\lib\idea_rt.jar
java.vm.specification.version = 1.8
sun.arch.data.model = 64
sun.java.command = com.li.SpringBootLabApplication
java.home = D:\software\jdk\jdk8\jdk1.8.0_161\jre
user.language = zh
java.specification.vendor = Oracle Corporation
awt.toolkit = sun.awt.windows.WToolkit
java.vm.info = mixed mode
java.version = 1.8.0_161
java.ext.dirs = D:\software\jdk\jdk8\jdk1.8.0_161\jre\lib\ext;C:\WINDOWS\Sun\Java\lib\ext
sun.boot.class.path = D:\software\jdk\jdk8\jdk1.8.0_161\jre\lib\resources.jar;D:\software\jdk\jdk8\jdk1.8.0_161\jre\classes
java.awt.headless = true
java.vendor = Oracle Corporation
catalina.base = C:\Users\lenovo\AppData\Local\Temp\tomcat.6690132104814217884.9002
file.separator = \
java.vendor.url.bug = http://bugreport.sun.com/bugreport/
sun.io.unicode.encoding = UnicodeLittle
sun.cpu.endian = little
sun.desktop = windows
sun.cpu.isalist = amd64
VM Flags:
Non-default VM flags: -XX:CICompilerCount=3 -XX:InitialHeapSize=134217728 -XX:MaxHeapSize=2122317824 -XX:MaxNewSize=707264512 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=44564480 -XX:OldSize=89653248 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC
Command line: -javaagent:D:\software\ideaj\ideaIC-2017.3.4.win\lib\idea_rt.jar=50372:D:\software\ideaj\ideaIC-2017.3.4.win\bin -Dfile.encoding=UTF-8
4:jmap: java記憶體映像工具
例如顯示 java堆詳細資訊
jmap -heap 236
C:\Users\lenovo>jmap -heap 236
Attaching to process ID 236, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.161-b12
using thread-local object allocation.
Parallel GC with 4 thread(s)
Heap Configuration:
MinHeapFreeRatio = 0
MaxHeapFreeRatio = 100
MaxHeapSize = 2122317824 (2024.0MB)
NewSize = 44564480 (42.5MB)
MaxNewSize = 707264512 (674.5MB)
OldSize = 89653248 (85.5MB)
NewRatio = 2
SurvivorRatio = 8
MetaspaceSize = 21807104 (20.796875MB)
CompressedClassSpaceSize = 1073741824 (1024.0MB)
MaxMetaspaceSize = 17592186044415 MB
G1HeapRegionSize = 0 (0.0MB)
Heap Usage:
PS Young Generation
Eden Space:
capacity = 195035136 (186.0MB)
used = 71367536 (68.06138610839844MB)
free = 123667600 (117.93861389160156MB)
36.592143069031415% used
From Space:
capacity = 17825792 (17.0MB)
used = 17497968 (16.687362670898438MB)
free = 327824 (0.3126373291015625MB)
98.16095688763787% used
To Space:
capacity = 14155776 (13.5MB)
used = 0 (0.0MB)
free = 14155776 (13.5MB)
0.0% used
PS Old Generation
capacity = 112197632 (107.0MB)
used = 23719728 (22.620895385742188MB)
free = 88477904 (84.37910461425781MB)
21.1410237249927% used
24236 interned Strings occupying 2896624 bytes.
C:\Users\lenovo>
5:jhat 虛拟機堆轉儲快照分析工具
6:jstack: java堆棧跟蹤工具
7: hsdis JIT生成代碼反彙編
可視化工具:
通過jdk/bin目錄下的 jconsole.exe啟動jconsole,将搜尋出所有本地運作的虛拟機程序。
選擇一個程序進行監控: 可檢視各個狀态的資訊
本部落格為非營利性個人原創,除部分有明确署名的作品外,所刊登的所有作品的著作權均為本人所擁有,本人保留所有法定權利。違者必究