Разработка Intellij / Grails, что нужно установить, чтобы избежать ошибок PermGen?

Я использую IntelliJ для разработки приложения Grails, но по мере роста нашего приложения я сталкиваюсь с ошибками Permgen при использовании плагина Tomcat. Я пробовал несколько комбинаций в настройках размера permgen, но они, похоже, не имеют никакого эффекта.

Любое решение в борьбе с этими ошибками Permgen?


person Marco    schedule 28.09.2011    source источник


Ответы (2)


В меню «Выполнить» выберите «Редактировать конфигурации», выберите конфигурацию, которая выполняет run-app для вашего приложения Grails, затем введите значение для permgen, как показано ниже красным.

введите здесь описание изображения

person Dónal    schedule 28.09.2011
comment
Решил мой PermGen во время разработки! Большое спасибо!! - person Marco; 28.09.2011

Вы имеете в виду, что вы получаете ошибки perm gen после повторного развертывания несколько раз?

Если да, то это недостаток самого Tomcat. Единственный способ исправить это — выключить Tomcat, перезапустить его, чтобы очистить perm gen, и повторить попытку.

Сам Grails усугубляет проблему, используя отражение, помогающее обеспечить «соглашение выше кодирования». Reflection использует perm gen для выполнения своей работы. Hibernate также может внести свой вклад; видеть

http://www.jroller.com/agileanswers/entry/preventing_java_s_java_lang

Если вы подключите VisualVM 1.3.2 к процессу Tomcat, вы сможете увидеть всю память, потоки и т. д. Возможно, это поможет вам лучше понять, происходит ли что-то еще.

person duffymo    schedule 28.09.2011
comment
Да, это происходит после нескольких модификаций, поэтому я хотел увеличить пространство permgen для Tomcat. Я могу сделать это легко на автономном коте, но не могу найти место внутри IntelliJ для настройки пространства permgen, которое IntelliJ передает плагину Tomcat. - person Marco; 28.09.2011
comment
Увеличение проницаемости только отсрочит его. Вы все равно получите ошибку OOM, когда perm gen заполнится. - person duffymo; 28.09.2011
comment
Я знаю, что это задержится, но всякий раз, когда я меняю файл, компилируется и т. Д. И заполняет permgen. Я не могу решить эту проблему. Так что увеличение permgen во время разработки решает мою проблему. Но я воспользуюсь вашим советом и буду использовать VisualVM для поиска потенциальных проблем позже! - person Marco; 28.09.2011