SoloCodigo

Programación General => Java => Mensaje iniciado por: Dudin en Jueves 25 de Agosto de 2005, 15:28

Título: Liberar Recursos
Publicado por: Dudin en Jueves 25 de Agosto de 2005, 15:28
hola, queria saber como puedo hacer para que mi programa java libere todo lo almacenado en memoria cada vez que cierro la aplicacion y mientras que esta funcionando optimizarlo para que no consuma mucha memoria.
Título: Re: Liberar Recursos
Publicado por: chimps en Sábado 27 de Agosto de 2005, 15:52
Teoricamente todo ese proceso es realizado automaticamente por el garbage collector, que corre simultaneamente con tu programa en un thread separado, viendo si existe la posibilidad de liberar memoria (cuando por ejemplo ya no hay referencias a un objeto). A diferencia de C++, no hay metodos como 'delete', que vendria a ser el opuesto de 'new' que se usa para crear el objeto.

El problema esta en que el garbage collector no actua de forma instantanea, por lo que tu aplicacion podria estar acumulando varios objetos ya muertos en memoria que podrian ser eliminados pero no lo son. Para este caso, se puede utilizar el System.gc(), que es una forma de sugerir que ahora seria un buen momento para empezar a ver si se puede limpiar memoria. Se debe elegir un momento especifico para llamar a este metodo debido a que tiende a generar pausas en la aplicacion, al borrar grandes cantidades de metodos no utilizados...por ejemplo, lo podes llamar mientras esperas el input de un usuario o en otras partes de la aplicacion donde no se este realizando varios procesos simultaneos.