2013-02-11 2 views
1

Я занимаюсь разработкой веб-приложений с помощью Eclipse,/Glassfish на Windows 7, и я вижу эту ошибку, по крайней мере несколько раз в день при развертывании новой версии приложения:Затмение/Glassfish работает из памяти

SEVERE: Exception while preparing the app : PermGen space 
SEVERE: java.lang.OutOfMemoryError: PermGen space 

Когда я это вижу, мне нужно закрыть Eclipse, использовать диспетчер задач Windows, чтобы остановить процесс Java (который, как я подозреваю, является Glassfish), и перезапустить Eclipse. Это неприятность и нежелательное прерывание.

Есть ли что-нибудь, что я могу исправить/настроить, чтобы эта ошибка исчезла или, по крайней мере, уменьшила ее частоту? Или это утечка памяти, с которой мне просто придется жить?

+0

Я думаю, что видел «горячие» перераспределения приложений Spring/Hibernate с течением времени. Если вы используете эти два, я не уверен, что с этим можно сделать. Тем не менее, я признаю, что это неопределенное предположение, основанное на воспоминании от недавнего времени. – millimoose

+1

В каталоге, где вы запускаете Eclipse, у вас есть файл eclipse.ini. Он содержит какие-либо настройки для MaxPermSize? Если нет, вы можете попробовать добавить: --launcher.XXMaxPermSize 512M ... или какой-либо другой номер и посмотреть, не улучшилось ли для вас что-то отличное от стандартного. См. Эту ссылку: http://wiki.eclipse.org/FAQ_How_do_I_increase_the_permgen_size_available_to_Eclipse%3F –

+0

@Darius: Спасибо, я попробую. Из любопытства, знаете ли вы о каких-либо ресурсах, обсуждающих самые большие настройки, которые следует учитывать? У меня довольно приличная машина, и Eclipse/Glassfish, вероятно, являются наиболее важными приложениями, запущенными на нем в любой момент времени; У меня нет никаких проблем, позволяя им запускать ресурсы. – BlairHippo

ответ

0

Это утечка памяти в Sun/Oracle JVM < = 7, которая часто возникает при использовании JPA. Обновление до Oracle's JVM 8 should solve this.

Если вы связаны с JVM 7 или ниже, вы можете добавить следующие аргументы VM в конфигурацию запуска Glassfish в Eclipse, чтобы увеличить предел памяти (в этом примере до 1024 МБ), что делает OOM менее регулярными:

-XX:MaxPermSize=1024M 
Смежные вопросы