java虚拟机工具入门

时间:2022-12-27 19:55:09

jps

能显示现在都有那些java程序运行

C:\Users\Administrator>jps
16964 DeadLockJstack
9172 PULSEI~1.JAR
19392 Jps
那个9172 代表的应该是eclipse


 jstack

能查看线程栈信息

大致上有下面几种情况

NEW,未启动的。不会出现在Dump中。
RUNNABLE,在虚拟机内执行的。

RUNNABLE状态表示线程正在执行,也有两种情况第一种是线程真正的在执行,另外一种是线程因为IO而阻塞。

BLOCKED,等待获得监视器锁。    synchronized 等待某个对象的锁
WATING,无限期等待另一个线程执行特定操作。 就是synchronized里的wait
TIMED_WATING,有时限的等待另一个线程的特定操作。 就是Thread.sleep
TERMINATED,已退出的。


jmap

jmap -histo pid 展示class的内存情况 即每个类实例化了多少个 

jmap -heap pid 展示pid的整体堆信息 各个代的内存占用情况


参考资料

http://blog.csdn.net/maosijunzi/article/details/46124405

http://www.jianshu.com/p/c6a04c88900a?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io

http://www.cnblogs.com/o-andy-o/archive/2013/06/11/3132335.html