PermGen - это область памяти вашей JVM, используемая для загрузки классов.
По мере выполнения вашего приложения оно использует все больше и больше этой памяти, особенно если вы находитесь в среде отладки, или если вы широко используете замыкания.
Способ исправить это - добавить еще!
Это делается путем передачи одного или двух параметров в JVM при запуске приложения.
Параметры:
-XX:MaxPermSize=256m
-XX:PermSize=128m
(скорректируйте значения в соответствии с вашими потребностями)
PermSize будет исходным размером PermGen, а MaxPermSize будет максимальным размером, до которого он будет увеличиваться, прежде чем выдать вам исключение, как в вашем посте.
По умолчанию установлено значение 64M
, что немного, если у вас есть «настоящее» приложение.
ОБРАТИТЕ ВНИМАНИЕ: Ваш total memory usage
будет: Heap size + Perm Size