Измените java -Xmx после того, как виртуальная машина уже запущена
Возможные дубликаты:
Установка размера кучи JVM во время выполнения
программно установить максимальный размер кучи Java
У меня долго работает Java-работа на моем компьютере, и она очень сильно замедляется, когда приближается к концу, потому что она сталкивается с серьезным давлением памяти, и сборщик мусора вынужден часто работать. Другими словами, я недооценил максимальный размер кучи -Xmx
что мне нужно для этой работы.
Поскольку я не хочу перезапускать задание, есть ли способ заставить JVM изменить его максимальный размер кучи после того, как JVM уже запущена, например, с помощью jinfo -flag
или что-то типа того? Это возможно?
Я пытался с вариациями на jinfo -flag +Xmx1024m
или же jinfo -flag Xmx=1024m
и все они дают мне следующее исключение. Является ли это признаком ошибки в Debian # 532538 (я использую уязвимую версию JVM), или это ожидаемое поведение (и изменить его просто невозможно? -Xmx
позже), или я предоставляю флаг jinfo
неправильно?
Exception in thread "main" java.io.IOException: Command failed in target VM
at sun.tools.attach.LinuxVirtualMachine.execute(LinuxVirtualMachine.java:218)
at sun.tools.attach.HotSpotVirtualMachine.executeCommand(HotSpotVirtualMachine.java:213)
at sun.tools.attach.HotSpotVirtualMachine.setFlag(HotSpotVirtualMachine.java:190)
at sun.tools.jinfo.JInfo.flag(JInfo.java:129)
at sun.tools.jinfo.JInfo.main(JInfo.java:76)
1 ответ
Поскольку я не хочу перезапускать задание, есть ли способ заставить JVM изменить его максимальный размер кучи после того, как JVM уже запущена, например, используя jinfo -flag или что-то в этом роде? Это возможно?
Нет, это невозможно. Или, по крайней мере, не с какой-либо существующей Sun JVM на любой платформе.
Для получения дополнительной информации см. Ответы на связанные вопросы согласно комментариям выше.
Является ли это признаком ошибки Debian #532538?
Нет.