Foros del Web » Programación para mayores de 30 ;) » Java »

Duda con Swing y la gestión de memoria

Estas en el tema de Duda con Swing y la gestión de memoria en el foro de Java en Foros del Web. Hola a todos, llevo un tiempo haciendo pruebas e investigando sobre cómo Swing gestiona la memoria, y quería saber hasta qué punto voy por buen ...
  #1 (permalink)  
Antiguo 19/10/2011, 07:39
 
Fecha de Ingreso: agosto-2010
Mensajes: 56
Antigüedad: 13 años, 8 meses
Puntos: 0
Pregunta Duda con Swing y la gestión de memoria

Hola a todos, llevo un tiempo haciendo pruebas e investigando sobre cómo Swing gestiona la memoria, y quería saber hasta qué punto voy por buen camino o estoy nadando en la completa ignorancia.

Empiezo por la conclusión: la gestiona mal, muy mal. Hice un proyecto muy sencillo que sólo tenía un JFrame vacío. Con el Administrador de Tareas de Windows abierto, ejecuté el proyecto y, como es lógico, el uso de memoria creció. Hasta aquí nada raro. Pero al cerrar el programa el uso de memoria seguía "crecido". Volvía a abrir el proyecto y el uso de memoria volvía a crecer sobre el anterior, ya abultado de la ejecución de antes.

Repetí este proceso de ejecutar/cerrar muchas, muchas veces, y en el Administrador de Tareas terminé viendo varios gigas de memoria en uso. Con AWT también probé lo mismo y no tuve ese problema, hacía la liberación de forma correcta al cerrar el programa, así que sólo pude deducir que Swing no libera la memoria al terminar la ejecución, lo cual me pareció un aunténtico fail por parte de Sun/Oracle.

Me cuesta pensar que haya un fallo tan gordo en algo tan extendido como es la librería Swing, así que me pregunto si hice algo mal, a lo mejor no estaba finalizando bien el programa sino que sólo estaba ocultando la ventana, o algo por el estilo...

¿Existe de verdad ese fallo? ¿Alguien puede sacarme de dudas?
  #2 (permalink)  
Antiguo 19/10/2011, 10:04
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Duda con Swing y la gestión de memoria

Al cerrar el JFrame, deberia cerrarse la aplicacion y liberar la memoria junto con este.

Te aseguraste de poner:
Código Javascript:
Ver original
  1. jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Si no le das un comportamiento de salida, el programa nunca cerrara realmente. Se cerrara la ventana pero seguira corriendo en el fondo.
  #3 (permalink)  
Antiguo 19/10/2011, 10:49
 
Fecha de Ingreso: agosto-2010
Mensajes: 56
Antigüedad: 13 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Duda con Swing y la gestión de memoria

Pues juraría que no puse eso, así que seguramente sea ese el problema, ¡gracias!

Etiquetas: gestion, liberacion, memoria, swing
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:22.