vaciar+memoria+java

aydil
13 de Agosto del 2005
Hola!
Tengo un programa que ejecuta muchísimas operaciones seguidas, que necesita bastante memoria RAM por cada operacion que hace, y claro a la sexta operación me dice java.lang.OutOfMemoryError.
El caso que de una operación a otra solo almaceno dos floats(que son dos acumuladores), porlo que creo que el problema es que los datos se quedan en memoria principal (y no es necesario). Por lo que me gustaría saber alguna forma de solucionar este problema , gracias!
un saludo :)

chuidiang
13 de Agosto del 2005
Buenas:

Me parece raro que se te vaya la memoria al echar cuentas. Es posible si utilizas arrays muy grandes.
Yo revisaría que no te metas en bucles o recursividades infinitas o que inadvertidamente estes guardando los valores en listas, vectores o similares.

De todas formas, puedes dar más memoria arrancando java con la opcion -Xmx y -Xms (echa un ojo en http://h21007.www2.hp.com/cmdspp/QuestionAnswer/1,1764,8799E158-CF6A-11D6-975C-00306E0146CA,00.html)

Para llamar al recolector de basura, puedes usar System.gc(). De todas formas, no suele hacer falta y esta llamada no garantiza que entre.

Se bueno.

aydil
13 de Agosto del 2005
Gracias, al final he utilizado lo que tu me dijiste==>-XX:NewSize=128m -XX:MaxNewSize=128m -X
X:SurvivorRatio=8 -Xms512m -Xmx512m
Con eso he conseguido que el programa realice bastantes más operaciones de las que hacía, pero aún así no finaliza. También he intentado forzar el recolector de basura pero los resultados son mínimamente mejores y además el programa se ralentiza enormemente, si encuentro algo de interés para solucionar el asunto del todo lo pondré aquí por si a alguien pudiera servirle.
Un saludo :) !!!!!