установить JAVA_OPTS в run.bat из jboss - PullRequest
1 голос
/ 16 января 2012
set JAVA_OPTS=-Xms256m -Xmx512m -Djava.awt.headless=true -XX:MaxPermSize=256m -server

Этот аргумент работает в run.bat jboss, но так как я хочу увеличить размер стека, я добавил -Xss512m но это не работает.

set JAVA_OPTS=-Xms256m -Xss512m -Xmx512m -Djava.awt.headless=true -XX:MaxPermSize=256m -server

Что в этом плохого?

Ответы [ 2 ]

2 голосов
/ 16 января 2012

Опция -Xss512m увеличивает размер каждого стека потоков до 512 Мбайт.Это безумие.Я ожидаю, что это , из-за чего JBoss не хватает памяти.

Почему вы в первую очередь увеличиваете размер стека?Размер стека по умолчанию должен подходить для большинства целей.Если он недостаточно велик, то есть большая вероятность, что:

  • в вашей программе есть ошибка, которая вызывает бесконечную рекурсию (и увеличивает стекразмер не поможет) или ...

  • вы используете алгоритм с патологическим случаем (а увеличение размера стека является полосатым).


Исходя из ваших комментариев, я бы предположил, что вы используете регулярное выражение для анализа всего входного документа, содержащего несколько записей.Движок регулярных выражений использует рекурсию для работы с повторяющимися элементами / группами.

Если предположить, что это проблема, то исправление состоит в том, чтобы переписать ваш код синтаксического анализа.

0 голосов
/ 16 января 2012

Каждый поток в виртуальной машине получает стек.Размер стека будет ограничивать количество потоков, которые вы можете иметь, слишком большой по размеру стека, и вам не хватит памяти, поскольку каждому потоку выделяется больше памяти, чем ему нужно. источник

Очевидно, -Xss512m слишком велико.Попробуйте меньшие значения, намного меньшие: -Xss2048k

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...