- jstat
jstat -gcutil 11117 250 20
查看进程号为11117的java进程的垃圾收集情况,每250ms输出一次,一共输出20次。
新生代Eden区(E,表示Eden)使用了6.2%的空间,两个Survivor区(S0、S1,表示Survivor0、Survivor1)里面都是空的
老年代(O,表示Old)和永久代(P,表示Permanent)则分别使用了41.42%和47.20%的空间
程序运行以来共发生Minor GC(YGC,表示Young GC)16次,总耗时0.105秒
发生Full GC(FGC,表示Full GC)3次,Full GC总耗时(FGCT,表示Full GC Time)为0.472秒
所有GC总耗时(GCT,表示GC Time)为0.577秒
- jmap
jmap的作用并不仅仅是为了获取dump文件,它还可以查询finalize执行队列、Java堆和永久代的详细信息,如空间使用率、当前用的是哪种收集器等。
- jstack
用于生成虚拟机当前时刻的线程快照(一般称为threaddump或者javacore文件)。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等都是导致线程长时间停顿的常见原因。