我的JDK工具地址
zxysMac:~ elwg$ cd /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/bin zxysMac:bin elwg$ ls appletviewer javah jjs jvisualvm schemagen extcheck javap jmap keytool serialver idlj javapackager jmc native2ascii servertool jar jcmd jps orbd tnameserv jarsigner jconsole jrunscript pack200 unpack200 java jdb jsadebugd policytool wsgen javac jdeps jstack rmic wsimport javadoc jhat jstat rmid xjc javafxpackager jinfo jstatd rmiregistry 复制代码
名称 | 全名 | 主要功能 |
---|---|---|
jps | JVM Process Status | 显示指定系统的所有的虚拟机进程 |
jstat | JVM Statistics Monitoring Tool | 用于收集虚拟机各方面的运行数据 |
jinfo | Configuration Info for Java | 显示虚拟机配置信息 |
jmap | Memory Map for Java | 生成虚拟机的内存转储快照(heapdump文件) |
jhat | JVM Heap Dump Browser | 用于分析heapdump文件 |
jstack | Stack Trace for Java | 显示虚拟机的线程快照 |
功能:可以列出运行的虚拟机进程、看到虚拟机执行的主类、本地虚拟机唯一ID
命令格式: jps [ option ] [ hostid ]
主要选项:
(base) zxysMac:~ elwg$ jps -l 16387 org.jetbrains.idea.maven.server.RemoteMavenServer 44422 sun.tools.jps.Jps 44392 com.zouxxyy.jvm.chap4.JpsTest 31368 org.jetbrains.kotlin.daemon.KotlinCompileDaemon 16217 44393 org.jetbrains.jps.cmdline.Launcher 复制代码
jstat [ option vmid [interval[s|ms] [count]] ]
功能:实时查看和调整虚拟机各项参数
命令格式: jinfo [ option ] pid
例子:看有没有用SerialGC
(base) zxysMac:~ elwg$ jinfo -flag UseSerialGC 46521 -XX:-UseSerialGC 复制代码
jmap [ option] vmid
与jmap配合使用,也就是分析堆存转储快照(heapdump文件)。
jstack [ option ] vmid
内存监控,相当于可视化的 jstat
命令
jstack
命令
,以下举几个简单的例子