我如何使用JConsole和JMX做更多的事情而不仅仅是监控我的Java类?

时间:2016-03-14 05:42:03

标签: java jmx

我正在学习如何使用JMX,我有这个简单的Java类,它吞噬了内存:

import java.util.Vector;

public class MemoryUsage  implements MemoryMBean 
{
  public static void main(String[] args)
  {

    Vector v = new Vector();
    while (true)
    {
      byte b[] = new byte[1048576];

      try {
         Thread.sleep(1200);
      } catch (InterruptedException ie){}


      v.add(b);
      Runtime rt = Runtime.getRuntime();
      System.out.println( "free memory: " + rt.freeMemory() );
    }

  }

public void showCurrentTime() {
    long time = System.currentTimeMillis();
    System.out.println(time);

}

}

当我使用JMX进行设置并使用JConsole时,我可以像这样监视内存使用情况:

enter image description here

但是我能做些什么更有趣吗?如果我想做一些听起来更多" smart" suchas - 停止/阻止Java类在某个阈值(例如-10 MB)之后占用更多内存。或者甚至减少分配的内存量等.JConsole本身是否允许你这样做?或者我是否必须更改JMX代码?

您如何将其添加到JMX类中?

0 个答案:

没有答案