Muita falta de memoria pra desenvolver! erro:PermGen space

23 respostas
arthurminarini

ola pessoa é o seguinte estou desenvolvendo um site com… vou falar tudo : [hibernate,glassfishv2,jsp,extjs,dwr,jpa hibernate,mozilla 3.1] e estou com muita falta de memoria a maquina é um dual core de 1gb da dell (optiplex 330) e ta dificil desenvolver em java :cry: ,
reparei no processo que tem uns 3 java.exe aberto creio eu que é do glassfish, netbeans e a Maquina virtual. apos dar o erro de PermGen space, fecho o netbeans e tbm o glassfish e fica um java.exe de quase 400mb de memoria e só sai do processo se eu mata-lo é comum isso?

23 Respostas

maior_abandonado

cara pra desenvolver com netbeans + varios frameworks 1 giga é poco… especialmente se vc tiver no vista…

quanto a esse java.exe de 400 mega… isso é realmente estranho… eu tenho o netbeans full aki e mesmo quando tava com projetos aberto com o matisse bem como com o jsf, struts, hibernate… bem por teste mesmo… eu com mto sacrificio conseguiafazer o java.exe do neetbeans chegar aos 400 mega(a maquina ficava uma carroça mesmo)

se mesmo fechando esse cara ta ai… é bem estranho mesmo, comigo aqui isso nao acontece…

guilhermevh

é simples…
deixa todos os programas aberto, mata esse serviço de 400MB e veja qual programa é finalizado.

OBS: de uma olhada nas suas configurações…uma máquina dessa deveria dar conta.

Abs.

ignacio83

PermGenSpace é um espaço de geração permanente (nunca é desalocado) da JVM.

A quantidade de memória física que vc possui não é a mesma da JVM. Quando uma JVM é iniciada ela possui um limite máximo de memória e de PermGen para utilizar. Procure no fórum ou na internet com certeza encontrará os parâmetros necessários para aumentar o tamanho da PermGen e da memória da JVM.

arthurminarini

sim eu ja echei coisas sobre pergem space para aumentar mas o mais estranho é o 400mb de java!! :!: :shock:

arthurminarini

guilhermevh:
é simples…
deixa todos os programas aberto, mata esse serviço de 400MB e veja qual programa é finalizado.

OBS: de uma olhada nas suas configurações…uma máquina dessa deveria dar conta.

Abs.

fiz, não foi o netbeans parece ser a maquina virtual mesmo

arthurminarini

ignacio83:
PermGenSpace é um espaço de geração permanente (nunca é desalocado) da JVM.

A quantidade de memória física que vc possui não é a mesma da JVM. Quando uma JVM é iniciada ela possui um limite máximo de memória e de PermGen para utilizar. Procure no fórum ou na internet com certeza encontrará os parâmetros necessários para aumentar o tamanho da PermGen e da memória da JVM.

achei algumas coisas sobre isso mas tem como vc me dar um exemplo? é linha de codigo que coloca no sistema? é via comando etc…

arthurminarini

maior_abandonado:
cara pra desenvolver com netbeans + varios frameworks 1 giga é poco… especialmente se vc tiver no vista…

quanto a esse java.exe de 400 mega… isso é realmente estranho… eu tenho o netbeans full aki e mesmo quando tava com projetos aberto com o matisse bem como com o jsf, struts, hibernate… bem por teste mesmo… eu com mto sacrificio conseguiafazer o java.exe do neetbeans chegar aos 400 mega(a maquina ficava uma carroça mesmo)

se mesmo fechando esse cara ta ai… é bem estranho mesmo, comigo aqui isso nao acontece…

é muito interessante mesmo eu estou no inicio do site eu to achando que pode ser um filter que eu implementei pra controlar o fechamento e abertura de sessões

só de dar um deploy no sistema veja uns system.ou.println que eu deu dentro do filter será que é normal

:::::::::: Inicializando filter... 
SMGT0007: Self Management Rules service is enabled
Application server startup complete.
:::::::::: Fechando session... 
deployed with moduleid = Projeto
:::::::::: Inicializando filter... 
:::::::::: Pegando session e iniciando transaction... 
:::::::::: Commit transaction... 
:::::::::: Fechando session... 
:::::::::: Pegando session e iniciando transaction... 
:::::::::: Commit transaction... 
:::::::::: Fechando session... 
:::::::::: Pegando session e iniciando transaction... 
:::::::::: Commit transaction... 
:::::::::: Fechando session... 
:::::::::: Pegando session e iniciando transaction... 
:::::::::: Commit transaction... 
:::::::::: Fechando session... 
:::::::::: Pegando session e iniciando transaction... 
:::::::::: Commit transaction... 
:::::::::: Fechando session... 
:::::::::: Pegando session e iniciando transaction... 
:::::::::: Commit transaction... 
:::::::::: Fechando session... 
:::::::::: Pegando session e iniciando transaction... 
:::::::::: Commit transaction... 
:::::::::: Fechando session... 
:::::::::: Pegando session e iniciando transaction... 
:::::::::: Commit transaction... 
:::::::::: Fechando session... 
:::::::::: Pegando session e iniciando transaction... 
:::::::::: Commit transaction... 
:::::::::: Fechando session... 
:::::::::: Pegando session e iniciando transaction... 
:::::::::: Commit transaction... 
:::::::::: Fechando session...
sidneycarlos65

tenta algo assim na linha de comando:

start “eclipse.exe” -XX:MaxPermSize=194M

arthurminarini

sidneycarlos65:
tenta algo assim na linha de comando:

start “eclipse.exe” -XX:MaxPermSize=194M

mas eu uso netbeans

sidneycarlos65

putz cara, desculpa…nem lembrei na hora de postar.

Mas deve ter algo parecido no Netbeans.

saviobarr

Vc já tentou setar o permsize?
-Xms256m -Xmx1024m

[]'s

Sävio

jaboot

Talvez isso ajude:

http://codare.net/2007/01/11/java-solucionando-o-erro-de-permgen-space/
http://blognotfoundexception.blogspot.com/2006/10/javalangoutofmemoryerror-permgen-space.html
http://www.guj.com.br/posts/list/64420.java

arthurminarini

saviobarr:
Vc já tentou setar o permsize?
-Xms256m -Xmx1024m

[]'s

Sävio

onde faz?

saviobarr

na hora de inicializar seu serviço que usa java, tipo a IDE (no seu caso o NetBeans). Coloque essa instrução na frente do comando do executável.

arthurminarini

ok mas isso só funcionara no desenvolvimento mas quando estiver em produção no servidor?

arthurminarini

ok mas isso só funcionara no desenvolvimento mas quando estiver em produção no servidor?

arthurminarini

ok mas isso só funcionara no desenvolvimento mas quando estiver em produção no servidor?

desculpa ao moderador pois repliquei as mensagens pois não reparei a paginação e achei que não estava gravando pois não estava aparecendo na pagina se houver como excluir esta ok

saviobarr

Sim, bem coerente a pergunta :-). Nesse caso vc subirá os serviços Java (Jboss/tomcat) setando o permsize.

arthurminarini

mas deve ter alguma coisa que esta inchando a maquina eu to achando que é esse controle de sessoes que é filtro mais hibernateUtil alguem teve problema com HibernateSessionRequestFilter que esta na pagina do hibernate?

Mauricio_Linhares

Vá na pasta que o NetBeans está instalado, procure a pasta "etc" e dentro dela vai ter um arquivo chamado netbeans.conf, deve ser mais ou menos como esse:

# ${HOME} will be replaced by JVM user.home system property
netbeans_default_userdir="${HOME}/.netbeans/6.5"

# Options used by NetBeans launcher by default, can be overridden by explicit
# command line switches:
netbeans_default_options="-J-client -J-Xverify:none -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Dapple.laf.useScreenMenuBar=true -J-Dsun.java2d.noddraw=true"
# Note that a default -Xmx is selected for you automatically.
# You can find this value in var/log/messages.log file in your userdir.
# The automatically selected value can be overridden by specifying -J-Xmx here
# or on the command line.

# If you specify the heap size (-Xmx) explicitely, you may also want to enable
# Concurrent Mark & Sweep garbage collector. In such case add the following
# options to the netbeans_default_options:
# -J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled
# (see http://wiki.netbeans.org/wiki/view/FaqGCPauses)

# Default location of JDK, can be overridden by using --jdkhome <dir>:
netbeans_jdkhome="/usr/java/latest"

# Additional module clusters, using ${path.separator} (';' on Windows or ':' on Unix):
#netbeans_extraclusters="/absolute/path/to/cluster1:/absolute/path/to/cluster2"

# If you have some problems with detect of proxy settings, you may want to enable
# detect the proxy settings provided by JDK5 or higher.
# In such case add -J-Djava.net.useSystemProxies=true to the netbeans_default_options.

Na opção "netbeans_default_options" você pode passar esses parâmetros.

arthurminarini

vlw mauricio

townray

saviobarr:
Vc já tentou setar o permsize?
-Xms256m -Xmx1024m

[]'s

Sävio

Isso não vai solucionar. Vai apenas adiar o problema. Eu até hoje não encontrei solução pra melhorar isso durante o desenvolvimento onde temos diversos deploies.

Fernando_Generoso_da

Utilize a Oracle JRockit JVM.

Fernando

Criado 27 de fevereiro de 2009
Ultima resposta 28 de ago. de 2009
Respostas 23
Participantes 10