Java.lang.OutOfMemoryError: Java heap space

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…

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.

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

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

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

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

[quote=ViniGodoy]Use um profiler:
http://visualvm.java.net/[/quote]

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

Será alguma restrição na minha unidade?

[quote=AssemblyXP][quote=ViniGodoy]Use um profiler:
http://visualvm.java.net/[/quote]

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

Será alguma restrição na minha unidade?[/quote]

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.