Java.lang.OutOfMemoryError: Java heap space

7 respostas
lucas_carvalho100

Pessoal estou com um problema em um programa que fiz, ele tem a função de exportar algumas tabelas do banco para arquivos Excel, porém quando esta no meio da execução o seguinte erro é lançado: java.lang.OutOfMemoryError: Java heap space

Mudei a configuração do meu eclipse ini para -Xmx1024m, porém rodo e o erro persiste, tentei mudar a configuração do eclipse para -Xmx2048m, porém quando tempo abrir o eclipse aparece o seguinte erro “Failed to create the java Virtual Machine”.

Alguém sabe como posso resolver esse problema?

Ah minha maquina é core 2 duo e tem 2gb de ram…

7 Respostas

renamed

Algumas coisas que podem ser feitas:

:arrow: A primeira solução é bem lógica, aumentar os filtros de pesquisa, trazendo menos resultados;

:arrow: Você faz muitos selects? Se sim, verifique se vc não deixou de fechar algum ResultSet, Connection etc…

:arrow: Como última opção, vc pode fazer vários selects e ir colocando no Excel aos poucos, por exemplo, faça um select Limit 0, 100 depois um Limit 101, 200 etc… Dependendo do SGBD isso é possível. Não esqueça, novamente, de fechar os ResultSet depois de usá-los.

Adelar

Somente complementando. Verifica na exception lançada os pontos de execução no programa, pois pode ser que os parâmetros não estejam sendo passados corretamente para as consultas, ou algo neste sentido.

[]'s

ViniGodoy

Use um profiler:
http://visualvm.java.net/

Adelar

O erro “Failed to create the java Virtual Machine” que aparece quando seta para -Xmx2048m é que não existe toda esta memória livre na RAM. Funciona com -Xmx1024m pois esta quantidade está disponível.

[]'s

pmlm

Se o que estoira é a tua aplicação, não me parece que mexer com os parâmetros do eclipse vá resolver o problema…

AssemblyXP

ViniGodoy:
Use um profiler:
http://visualvm.java.net/

Vinny, sabe por que eu abro o Eclipse e aparece: Failed to create The Java Virtual Machine?

Será alguma restrição na minha unidade?

Ataxexe

AssemblyXP:
ViniGodoy:
Use um profiler:
http://visualvm.java.net/

Vinny, sabe por que eu abro o Eclipse e aparece: Failed to create The Java Virtual Machine?

Será alguma restrição na minha unidade?

Existe uma restrição de memória para VMs de 32 bits (algo em torno dos 1.2 GB). Por isso a mensagem.

Outra coisa: o Eclipse usa outra VM pra rodar os programas. De modo que você precisa alterar a memória do programa em “Run Configurations”.

Mas mesmo assim a dica do Vini é muitíssimo válida. Use um profiler antes de tudo porque aumentar a memória só irá retardar o tempo do estouro caso haja problemas no código.

Criado 9 de março de 2011
Ultima resposta 3 de abr. de 2012
Respostas 7
Participantes 7