Я использую Tomcat6 в Sun JRE6, и каждая пара развертывает, я получаю OutOfMemoryException: PermGen. Я выполнил решения Googling of PermGen и перепробовал множество исправлений. Нет работы. Я прочитал много хорошего о Oracle JRockit и о том, как его распределение PermGen может быть гигантским (по сравнению с 128M у Sun), и хотя это не решает проблему, это позволило бы мне выполнить повторное развертывание 100 раз между исключениями PermGen по сравнению с 2 раз сейчас.
Проблема с JRockit заключается в том, что для его использования в производстве вам необходимо купить WebLogic, который стоит тысячи долларов. Какие есть другие (бесплатные) варианты, которые более щадящие для расширения PermGen? Как работают следующие JVM в этой области?
- IBM JVM
- Открыть JDK
- Blackdown
- Каффе
... другие
Обновление: Некоторые люди спрашивают, почему я считаю, что PermGen max был 128M. Причина в том, что каждый раз, когда я пытаюсь поднять его выше 128M, моя JVM не может инициализироваться:
[2009-06-18 01:39:44] [info] Error occurred during initialization of VM
[2009-06-18 01:39:44] [info] Could not reserve enough space for object heap
[2009-06-18 01:39:44] [395 javajni.c] [error] CreateJavaVM Failed
Странно, что не удается зарезервировать место для объекта куча , хотя я не уверен, что это куча "вместо" кучи "."
Я загружаю JVM с начальным объемом 1024 МБ и максимальной кучей 1536 МБ.
Я закрою этот вопрос, так как на него дан ответ, т.е. «переключение бесполезно» и задайте вместо него Почему мой Sun JVM не работает с большими настройками PermGen?