Java heap space

6 respostas
J

Pessoal

ta dando um erro de OutOfMemory aqui, entao pra debugar, mando imprimir o espaço livre dentro de um loop que eu suspeito que ta lancando a excecao.

for (int i = 0; i < arraylist.size(); i += larguraJanela) {
			int soma = 0;
			for (int j = i + 1; j < i + larguraJanela && j < arraylist.size(); j++) {
				soma += (arraylist.get(j) - arraylist.get(j - 1));
			}
			double paraTangente = (double) soma / (double) larguraJanela;
			double angulo = Math.toDegrees(Math.atan(paraTangente));
			
			arraylist22222.add(angulo);
System.out.println(Runtime.getRuntime().freeMemory());
		}

no meio da execucao desse for eh lançado o erro...
so que o ultimo valor impresso eh mais de 8 MB !!!

alguem sabe o que pode ser isso?

desde ja agradeço.

6 Respostas

H

vc precisa atualizar o valor do i que faz o primeiro loop :

for (int i = 0; i < arraylist.size(); i += larguraJanela) {

coloque :

for (int i = 0; i < arraylist.size(); ++i) {
J

cara, eu atualizo sim

for (int i = 0; i < arraylist.size(); i += larguraJanela)

esse trecho

i += larguraJanela

eh o mesmo que

i = i + larguraJanela

valeu por se preocupar, mas o “buraco eh mais embaixo”…
o erro eh que a JVM diz que eu to usando memoria demais dela, mas eu mando imprimir a memoria e vejo que ainda faltam 8MB pra usar…ou seja, pode ser um bug de java…sei la.

alguem??

H

é mesmo, não tinha percebido.

qual a versão do jdk que vc está usando ?

Herrera

J

java 6…sera q eh bug de mustang?

P

quanto é isso ? arraylist.size()

se for realmente muito grande, o erro pode estar sendo lançado no for de dentro.

é so um palpite…

J

o tamanho é 809…
nao chega a ser isso nao…imagino

valeu

Criado 20 de julho de 2007
Ultima resposta 23 de jul. de 2007
Respostas 6
Participantes 3