Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何使用JConsole和JMX做的不仅仅是监视我的Java类?_Java_Jmx - Fatal编程技术网

我如何使用JConsole和JMX做的不仅仅是监视我的Java类?

我如何使用JConsole和JMX做的不仅仅是监视我的Java类?,java,jmx,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];

我正在学习如何使用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时,我可以像这样监视内存使用情况:

但我能用这个做些更有趣的事吗?如果我想做一些听起来更“聪明”的事情,比如停止/防止Java类在某个阈值(比如-10 MB)后占用更多内存,该怎么办。或者甚至是为了减少分配的内存量,等等。JConsole本身允许您这样做吗?还是我必须更改JMX代码


如何将其添加到JMX类中?

我想,但是应用程序会失败。“我想你可以重新启动它,但你要冒着创建反馈循环的风险。”ElliottFrisch-好的,明白了。但什么是反馈回路?它会吞噬更多的记忆?也许,也许不会;但它可能会启动,消耗太多内存,然后立即重新启动(无限期)。