深入理解Java虚拟机-JDK自带工具集

1,JPS:JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程

   1.1,jps -q:只输出LVMID(Local Virtual Machine Identifier本地虚拟机唯一ID),省略主类的名称

   1.2,jps -m:输出虚拟机进程启动时传入给主类mian()函数的参数

深入理解Java虚拟机-JDK自带工具集_第1张图片

   1.3,jps -l:输出主类的全民,如果进程执行的jar包,输出jar路径

深入理解Java虚拟机-JDK自带工具集_第2张图片

   1.4,jps -v:输出虚拟机进程启动时jvm参数

深入理解Java虚拟机-JDK自带工具集_第3张图片

2,jstat:JVM Statistics Monitoring Tool,用于收集Hotspot虚拟机各方面的运行数据,显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。

   2.1 jps -gc:监视Java堆状况,包括Eden区,两个survivor区,老年代,永久代等容量,已使用空间,GC时间合计等信息

深入理解Java虚拟机-JDK自带工具集_第4张图片

jstat -gc 12516 1000 20:进程12516 每1000毫秒输出一次GC信息,合计输出20次

S0C、S1C、S0U、S1U:Survivor 0/1区容量(Capacity)和使用量(Used)

EC、EU:Eden区容量和使用量

OC、OU:年老代容量和使用量

PC(MC)、PU(MU):永久代容量和使用量

CCSC、CCSU:压缩类空间容量和使用量

YGC、YGT:年轻代GC次数和GC耗时

FGC、FGCT:Full GC次数和Full GC耗时

GCT:GC总耗时
// -Xms20m -Xmx20M 
public class GCTest {
	public static void main(String[] args) throws InterruptedException {
		int i = 0;
		List list = new ArrayList();
		while(true) {
			Thread.sleep(10);
			new OOMObject(i++);
			list.add(i);
		}
	}
}

   2.2,jstat -class:监视类装载,卸载数量,总空间以及类装载所耗费的时间

深入理解Java虚拟机-JDK自带工具集_第5张图片

3,jinfo:Configuration Info for Java,显示虚拟机配置信息。

深入理解Java虚拟机-JDK自带工具集_第6张图片

4,jmap:Memory Map for Java,生成虚拟机的内存转储快照(heapdump文件)

   4.1,jmap -dump:生成Java堆转储快照,格式 -dump:[live,]fomate=b,file=,其中live子参数说明是否只dump出存活的对象。

深入理解Java虚拟机-JDK自带工具集_第7张图片

深入理解Java虚拟机-JDK自带工具集_第8张图片

深入理解Java虚拟机-JDK自带工具集_第9张图片

   4.2,jmap -heap vmid:显示Java堆详细信息,如使用哪种回收器,参数配置,分代状况等。

深入理解Java虚拟机-JDK自带工具集_第10张图片

5,jhat:JVM Heap Dump Browser,用于分析heapdump文件,他会建立一个http/htmlfuwuqi ,让用户可以在浏览器上查看分析结果

深入理解Java虚拟机-JDK自带工具集_第11张图片

深入理解Java虚拟机-JDK自带工具集_第12张图片

6,jstack:Stack Trace for Java,显示虚拟机的线程快照

   6.1,jstack -l vmid:除堆栈外,显示关于锁的附加信息

深入理解Java虚拟机-JDK自带工具集_第13张图片

 

 

你可能感兴趣的:(JVM)