jps
能显示现在都有那些java程序运行
C:\Users\Administrator>jps那个9172 代表的应该是eclipse
16964 DeadLockJstack
9172 PULSEI~1.JAR
19392 Jps
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.cnblogs.com/o-andy-o/archive/2013/06/11/3132335.html