Проблема с памятью PermGen после перехода с одной платформы на другую: что по умолчанию для них обоих

Я перенес свое приложение из IBM JDK (IBM J9 VM) в 64-битную серверную виртуальную машину OpenJDK (сборка 25.131-b11, смешанный режим). В среде IBM JDK мы использовали WebSphere, а в OpenJDK мы использовали Tomcat .
Все было хорошо, пока мы не получили это исключение. Приложение успешно работает в среде IBM JDK и WebSphere.

Exception in thread "ajp-bio-14004-exec-462" java.lang.OutOfMemoryError: PermGen space
java.lang.OutOfMemoryError: PermGen space

В любом случае я могу узнать, что такое PermGen по умолчанию для обеих сред Java, запустив какую-то команду. Я искал в интернете и просмотрел некоторые документы, не повезло. Я тоже пытался убить -3.

2 ответа

Сборка Hotspot 25.131-b11 выглядит как версия OpenJDK 8, однако OpenJDK 8 не выбрасывает пространство PermGen OutOfMemoryError исключение. Код для его выброса просто отсутствует, поскольку постоянное поколение было удалено из сборщиков мусора.

Вы уверены, что запускаете свое приложение с предполагаемой JVM?

Это зависит от каждой JVM. В IBM инструмент обзора DTFJ должен предоставить информацию,

Для OpenJDK вы можете попробовать использовать инструменты пользовательского интерфейса jvisualvm или jconsole или утилиты командной строки.

Другие вопросы по тегам