Возможные дубликаты:
Установка размера кучи 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)