那下面呢我们来看一个jconsole这个工具的使用,我还是借用刚才的这个案例啊。
好,我们先把它运行起来。
然后到控制台上。我们打开一个jconsole
好,它就出来一个这种图形化界面的工具。
我们选择刚才这个进程连上去。
选择不完全连接。
连上以后呢,我们就可以看到它的堆内存的使用了。
呃,可以看到现在呢你用的内存大约是二十g 它一下子就跑到四十g 了啊,这是因为我们打印了二,新分配了一个十兆的内存啊。(打印二指令的上一句构造了10Mb的byte数组对象)
好,继续观察,等打印三的时候,它会执行一次垃圾回收。这个时候它的内存使用就降下来。
哎,可以看到打印三了,立马它从40多变到了很低啊的一个程度,这是我们这个jconsole工具的使用。
特点:1.它的监测是一个连续的。所以它还是比较更直观一些。
2.它除了可以监测我们的堆内存,还可以查看我们的线程的情况以及c p u 的占用率,包括加载的类的数量等等,
当然我们也可以用更具体的内存占用、线程情况、类的加载数量来看它的更详细的一些信息啊,这个工具还是非常的直观。
之前我们提到的jstack,就是查看什么线程死锁呀,这些也可以通过这种jconsole达到相同的效果啊,只不过它也是用图形界面的方式啊。
你看它这个检测死锁的功能,效果跟我们的jstack那个功能是一样的啊。
好,关于这个jconsole的使用,我们就先介绍到这里。