gpt4 book ai didi

java - Java的JConsole可以用来自动配置内存吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:54:21 26 4
gpt4 key购买 nike

我正在学习 Java JMXJConsole .我很好奇 JConsole 的内存管理能力。例如,内存选项卡中有一个“执行 GC”按钮:

enter image description here

假设我有一个简单的 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 以防止此应用程序消耗 X 内存量?或者我是否需要通过 JMX 创建一个新的 MBean?谢谢

最佳答案

Would there be a way to configure JConsole to prevent this app from consuming X amount of memory?

我们无法从 JConsole 调整/控制内存限制。我看到的唯一选项是使用 -Xmx在 java 进程启动期间。查看下面的屏幕截图,JConsole 将内存参数公开为仅可读但不可写。

JConsole memory parameters readonly


Or do I need to make a new MBean via JMX ?

即使我们编写自己的 MBean,我也不认为可以在运行时更改 Java 进程的内存限制。唯一的方法是在启动期间使用 -Xms 配置内存限制。和 -Xmx .

除非问题特定于您的示例代码,否则您希望限制可以添加到 Vector 的元素数量通过JMX Bean并通过限制内存消耗,这是可行的,但我怀疑这是否是您正在寻找的。

关于java - Java的JConsole可以用来自动配置内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35713157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com