目录
一、jdk工具之jps(JVM Process Status Tools)命令使用
二、jdk命令之javah命令(C Header and Stub File Generator)
三、jdk工具之jstack(Java Stack Trace)
四、jdk工具之jstat命令(Java Virtual Machine Statistics Monitoring Tool)
四、jdk工具之jstat命令2(Java Virtual Machine Statistics Monitoring Tool)详解
五、jdk工具之jmap(java memory map)、 mat之四--结合mat对内存泄露的分析
六、jdk工具之jinfo命令(Java Configuration Info)
七、jdk工具之jconsole命令(Java Monitoring and Management Console)
八、jdk工具之JvisualVM、JvisualVM之二--Java程序性能分析工具Java VisualVM
九、jdk工具之jhat命令(Java Heap Analyse Tool)
十、jdk工具之Jdb命令(The Java Debugger)
十一、jdk命令之Jstatd命令(Java Statistics Monitoring Daemon)
十一、jdk命令之Jstatd命令(Java Statistics Monitoring Daemon)
十二、jdk工具之jcmd介绍(堆转储、堆分析、获取系统信息、查看堆外内存)
十三、jdk命令之Java内存之本地内存分析神器:NMT 和 pmap
jconsole:一个java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。用java写的GUI程序,用来监控VM,并可监控远程的VM,非常易用,而且功能非常强。命令行里打 jconsole,选则进程就可以了。
需要注意的就是在运行jconsole之前,必须要先设置环境变量DISPLAY,否则会报错误,Linux下设置环境变量如下:
export DISPLAY=:0.0
[root@localhost bin]# jconsole
那我在window机器上的结果是:
上两个图看一下:
可以这里选择查看本地进程的状况,还是远程进程的状况。
通过这张图可以看到内存、线程、类及CPU使用的一些情况。
内存情况:
VM概要:
示例1
package mat; public class Deadlock implements Runnable{ private int a; private int b; public Deadlock(int a, int b) { super(); this.a = a; this.b = b; } @Override public void run() { synchronized (Integer.valueOf(a)) { synchronized (Integer.valueOf(b)) { System.out.println("a+b="+(a+b)); } } } public static void main(String[] args) { for(int i = 0; i < 1000; ++i){ new Thread(new Deadlock(1, 2)).start(); new Thread(new Deadlock(2, 1)).start(); } } }
用jconsole连接上后,看线程页
看死锁信息:
用jvisualVM看上面的示例