我正在学习如何使用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时,我可以像这样监视内存使用情况:
但是我能做些什么更有趣吗?如果我想做一些听起来更多" smart" suchas - 停止/阻止Java类在某个阈值(例如-10 MB)之后占用更多内存。或者甚至减少分配的内存量等.JConsole本身是否允许你这样做?或者我是否必须更改JMX代码?
您如何将其添加到JMX类中?