PermGen space é um erro muito chato que ocorre quando menos se espera!
Antes de qualquer coisa vou falar um pouco do que é PermGen.
Esse é o nome de uma área pequena e limitada (tamanho fixo) da Virtual Machine, é nessa PermGem ou Perm Generation ou Geração Permanente que são guardados objetos de pouca movimentação como por exemplo poll de strings e objetos de reflexão.
E o que esse blá-blá-blá quer dizer?
Como a PermGen tem memória curta, se for usada demais, o entra e sai de códigos pode lotar sua capacidade e gerar o erro java.lang.OutOfMemoryError: PermGen space!
Como resolver isso?
Para aumentar um pouco a memória da virtual machine, podemos utilizar o comando -XX:MaxPermSize em sua inicialização, esse comando aumenta a memória da PermGem na virtual machine!
Um exemplo simples: vamos chamar uma classe mandando a virtual machine utilizar 256mb de memória pra executá-la.
java -XX:MaxPermSize=256m meupacote.MinhaClasse
Ótimo! Mas a menos que você esteja brincando de estourar a memória do computador na faculdade, é muito raro alguem ficar abrindo classes pelo console. Então digamos que você possua uma aplicação web e um servidor Tomcat e ide Eclipse (vou utilizar estes dois como exemplo por que são os mais utilizados), onde colocar esse comando?
Utilizando o Eclipse clique em Window, Preferences, escolha expanda o menu Tomcat e selecione JVM Settings.
Clique em Add, digite na caixa -XX:MaxPermSize=256m e clique em OK.
Pronto, agora a PermGem reservada para o Tomcat será maior e aquele erro chato não vai mais ficar incomodando.
Se você possuir um computador com bastante memória sobrando, pode reservar mais memória para a PermGem, eu coloquei 256 por que é quanto eu uso, mas você pode colocar 512, 1024, 2048, etç, vai da sua vontade.
0 comentários:
Postar um comentário
Alguma dúvida?