我正在研究关于Java JMX和JConsole。我很好奇JConsole的内存管理能力。例如,有一个“执行GC”按钮,在内存选项卡:Java的JConsole可以用来自动配置内存吗?
假设我有简单的Java应用程序,吃内存,这样的事情:
public class MemoryEater
{
public static void main(String[] args)
{
Vector v = new Vector();
while (true)
{
byte b[] = new byte[1048576];
v.add(b);
Runtime rt = Runtime.getRuntime();
System.out.println("free memory: " + rt.freeMemory());
}
}
}
会不会有一种配置JConsole以防止此应用程序消耗内存数量的方法?还是需要通过JMX制作新的MBean?谢谢
您可以配置Java进程能有多少内存消耗为启动命令行选项。我不认为这可以在运行时改变。 HTTP://计算器。com/questions/763295/setting-jvm-heap-size-at-running – Thilo
如果您担心JVM实例占用了所有操作系统内存,则可以使用-Xmx64m限制JVM的堆大小,以便替换64m以兆字节为单位指定您自己的最大允许堆大小。 –