Falta de memoria en la VM

hinala
04 de Junio del 2004
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!

cubil
04 de Junio del 2004
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() ;

hinala
04 de Junio del 2004
Seguramente será que uso muchos vectores y no los destruyo. Como puedo hacer para destruirlos?
Y otra cosa, el System.gc() donde lo pongo?
Merci por la respuesta, me ha ayudado a entender más q pasa..jeje