WedX - журнал о программировании и компьютерных науках

Измените 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)

  • Вы не можете изменить настройку размера кучи JVM во время выполнения 02.02.2011
  • @Stephen C, я думаю, это безмерно забавно, что вы предлагаете закрыть это как дубликат другого вопроса, который содержит предложение закрыть как дубликат еще одного вопроса. Хотя @Mark Elliot указывает (за 4 минуты до вас, я мог бы добавить), что этот вопрос является копией еще четвертого вопроса. 02.02.2011
  • @ Тим Бендер - грустнее, ИМО. Можно было подумать, что более 10 тысяч пользователей научатся искать, прежде чем задавать вопросы ... 02.02.2011
  • @Stephen: Я искал. Я видел оба этих вопроса и чувствовал, что они не дают ответа на некоторые детали, которые я задаю в этом вопросе. Большая часть обсуждения этих вопросов сосредоточена на идее JVM, изменяющей свой максимальный размер кучи изнутри (что связано с политикой безопасности JVM, тогда как изменение его извне вполне может быть разрешено администратором) и я добавил конкретный вопрос об использовании jinfo для этого и об ошибке Debian. 02.02.2011
  • Если бы jinfo мог это сделать, то spawn jinfo был бы правильным ответом на эти другие вопросы. 02.02.2011

Ответы:


1

Поскольку я не хочу перезапускать задание, есть ли способ заставить JVM изменить максимальный размер кучи после того, как JVM уже запущена, например, используя jinfo -flag или что-то в этом роде? Это возможно?

Нет, это невозможно. Или, по крайней мере, не с какой-либо существующей Sun JVM на любой платформе.

Для получения дополнительных сведений см. Ответы на связанные вопросы в комментариях выше.

Является ли это признаком ошибки Debian № 532538?

No.

02.02.2011
Новые материалы

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


Для любых предложений по сайту: [email protected]