java虚拟机工具入门

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

上一篇:RTP协议学习大总结从原理到代码


下一篇:JS中的一等公民:函数