Falta de memoria en la VM
Hola!
Tengo un problema y me estoy volviendo loca. He desarrllado una aplicación en java swing que es como un catalogo donde se pueden hacer pedidos y tal, con muchas imagenes...
Pues weno, de vez en cuando (ultimamente casi siempre) se me cuelga el programillo y me da el error: java.lang.OutOfMemoryError ?¿?¿?!! Se q es algo de la MV que le falta memoria o nose q, pero no tengo ni idea de como arreglarlo. Por favor ayudadme!!! Tengo q entregar el programa la semana q viene y no se lo puedo dar así al jefe para q se le cuelgue cada dos por tres!!!aaahhh!!
Muchas Gracias!
Tengo un problema y me estoy volviendo loca. He desarrllado una aplicación en java swing que es como un catalogo donde se pueden hacer pedidos y tal, con muchas imagenes...
Pues weno, de vez en cuando (ultimamente casi siempre) se me cuelga el programillo y me da el error: java.lang.OutOfMemoryError ?¿?¿?!! Se q es algo de la MV que le falta memoria o nose q, pero no tengo ni idea de como arreglarlo. Por favor ayudadme!!! Tengo q entregar el programa la semana q viene y no se lo puedo dar así al jefe para q se le cuelgue cada dos por tres!!!aaahhh!!
Muchas Gracias!
Ante todo, revisa el programa a ver si estás utilizando mucha memoria y no la liberas (creas objetos y objetos y los mantienes en arrays o similar).
La VM va cogiendo memoria según la va necesitando, hasta un límite que tu le dices al arrancar el programa:
.binjava.exe -Xms20m -Xmx80m
Este ejemplo le dice que arranque con 20 megas y que puede coger hasta 80 momento en el cual, si no puede liberar memoria, te dará el error.
En teoría la VM llama al garbage collector cuando le queda poca memoria libre, para eliminar los objetos que ya no se usen, pero puedes forzarlo tú con System.gc() ;
La VM va cogiendo memoria según la va necesitando, hasta un límite que tu le dices al arrancar el programa:
.binjava.exe -Xms20m -Xmx80m
Este ejemplo le dice que arranque con 20 megas y que puede coger hasta 80 momento en el cual, si no puede liberar memoria, te dará el error.
En teoría la VM llama al garbage collector cuando le queda poca memoria libre, para eliminar los objetos que ya no se usen, pero puedes forzarlo tú con System.gc() ;