Возвращение “PermGen” в Tomcat 6

В принципе, логический оператор И (&&) вернет значение второго операнда, если первый - правy , и он вернет значение первого операнда, если оно сам falsy , например:

true && "foo"; // "foo"
NaN && "anything"; // NaN
0 && "anything";   // 0

Обратите внимание, что значения falsy - это те, которые принуждают к false при использовании в булевом контексте, они null, undefined, 0, NaN, пустая строка и, конечно, false, что-то еще прилегает к true.

19
задан Berek Bryan 23 January 2009 в 14:11
поделиться

3 ответа

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

Это вызвано тем, что Tomcat загрузит новые классы каждый раз, когда Вы развертываете ВОЙНУ - или, если Вы работаете в среде разработки, каждый раз, когда Вы редактируете JSP. Они должны в конечном счете быть очищены, но в среде активной разработки у Вас могут быть периоды, где существует и старые и новые загруженные экземпляры. Или, если Вы находитесь в продуктивной среде и имеете большое веб-приложение, Вам, возможно, просто понадобилось бы больше пространства.

Для установки permgen размера используйте -XX:MaxPermSize=SIZE

, следующие ссылки могут быть полезными: настраивающийся GC (это - 1,5 выпуска), GC FAQ (1.4.2 выпуска), опции Hotspot VM (я верю, это 1.6)

25
ответ дан 30 November 2019 в 02:52
поделиться

Я думаю, что у Вас могло бы быть много JSPs в Вашем приложении. Существует известная проблема у кота, где перезапуск развертываемого приложения со многими JSPs вызывает проблемы PermGen, потому что кот перекомпилировал и перезагружает все эти классы снова. Увеличение размера, как упомянуто в предыдущем сообщении должно помочь.

2
ответ дан 30 November 2019 в 02:52
поделиться

Попробуйте использовать следующие переключатели JVM:

-XX:+UseConcMarkSweepGC
-XX:+CMSPermGenSweepingEnabled
-XX:+CMSClassUnloadingEnabled

Увеличение пространства permgen с помощью -XX: MaxPermSize только отсрочивает проблему.

См. Этот комментарий: Как бороться с ошибкой «java.lang.OutOfMemoryError: PermGen space»

Это косвенно указывало мне на эти два сообщения: проблема , решение

13
ответ дан 30 November 2019 в 02:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: