Я изучаю о Java JMX и JConsole. Мне интересно узнать о возможностях управления памятью JConsole. Например, есть кнопка «Выполнить GC» на вкладке Память:Может ли JConsole Java использоваться для автоматической настройки памяти?
Предположим, что у меня есть простое приложение 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
объема памяти? Или мне нужно сделать новый MBean через JMX? спасибо
Вы можете настроить сколько памяти процесс Java может потреблять в качестве опции запуска командной строки. Я не думаю, что это можно изменить во время выполнения. Http: // StackOverflow.com/questions/763295/setting-jvm-heap-size-at-runtime – Thilo
Если вы обеспокоены тем, что экземпляр JVM загружает всю вашу память ОС, вы можете ограничить размер кучи JVM -Xmx64m, где вы можете заменить 64 м, чтобы указать свой максимальный разрешенный размер кучи в мегабайтах. –