Hola, en primer luegar pido disculpas si digo algo que no sea cierto, pues todo lo que os voy contar lo he ido aprendiendo estos meses gracias a la web.
Estoy haciendo un proyecto fin de carrera, cuyo objetivo es implementar con lenguaje Java, un algoritmo matemático.
Ya tengo el código terminado y correcto, y estos días he estado cambiando cosas para mejorar la eficiencia del código (evitando bucles innecesarios, cambiando líneas de código por métodos ya creados de Java,...) mejorando considerablemente el tiempo de ejecución.
Pero me sigo encontrando un problema, para cierto número de variables de entrada, me sale la excepción en ejecución de "Java heaps space". Puesto que el código está optimizado, el problema se encuentra en que se satura la memoria que Java tiene disponible en su máquina virtual. Como mi Pc tiene una RAM de 1GB, he probado a aumentarle dicha memoria hasta 896 MB, con la orden -Xms896m. Consigo aumentar el número de datos de entrada sin que se sature el programa, pero sigue llegando a un tope.
¿Alguna otra solución a parte de implementarlo en un Pc con más memora RAM y poder dar así más memoria a la máquina virtual de Java?
En mi implementación, los datos de entrada son una matriz de (N*5), que represento mediante un ArrayList (N vectores de 5 componentes). Y durante la ejecución del algoritmo tengo que formar una matriz de (N*2N), también con arrayList (qué es donde se satura cuando pongo más de N = 7500). En teoría el programa está diseñado para trabajar con varios cientos de miles de variables.
¿Alguna orientación?
Muchas gracias :)