Corrigindo Erro OutOfMemoryError PermGen Space

Você está recebendo o erro Caused by: java.lang.OutOfMemoryError: PermGen space ao tentar executar sua aplicação com o Jboss no Intellij ou em outra IDE? Esta postagem irá trazer brevemente a solução desse problema, vamos lá entender todo o contexto.

Porque o erro PermGen Space acontece?

Isso acontece porque a JVM tem um espaço de memória bastante limitada,  essa área é chamada de Perm Generation, onde são armazenados os objetos que sua desalocação na memória não é tão frequente, como o caso de código de classes, pool de strings etc.

permgen

Por esse espaço ser limitada, seu uso frequente e intenso pode gerar vários erros, que é o caso do java.lang.OutOfMemoryError: PermGen space. Isto indica que não existe mais espaço reservado para o PermGen Space.

The size of all those regions, including the permgen area, is set during the JVM launch. If you do not set the sizes yourself, platform-specific defaults will be used.

The java.lang.OutOfMemoryError: PermGen space message indicates that the Permanent Generation’s area in memory is exhausted. Fonte.

java.lang.OutOfMemoryError: PermGen space

Show me the way

Basicamente você deve aumentar o tamanho de memória nessa área Perm Generation, para isso devemos usar o XX:MaxPermSize, esse exemplo é para aumentar a memória de 64mb que é o padrão, para 128mb em um class:

java -XX:MaxPermSize=128m kelvinsantiago.com.br.MinhaClasse

Se estiver utilizando um servidor de aplicação Tomcat, Jboss, você deve definir esse MaxPermSize na configuração do server, o exemplo a seguir é utilizando o Jboss no Intellij.

Nas configurações da sua aplicação no campo VM Options, insira o código abaixo, isso aumentará o espaço de memória do PermGen para 512mb, assim irá resolver  “Erro Caused by: java.lang.OutOfMemoryError: PermGen space“.

-XX:MaxPermSize=512M

Conseguiu resolver?

Bom, chegamos ao fim desse tutorial, espero que essa dica tenha contribuído para seu conhecimento, caso tenha alguma dúvida ou até mesmo queira deixar um feedback, utilize o formulário de comentários abaixo.