PROBLEMA CON MEMORIA EN JAVA

Hola chicos, tengo un problema con respecto a la memoria, he hecho una aplicacion de escritorio con conexion base de datos mysql , mi problema esta que cuando abro ventanas de tipo jdialog la memoria crece pero al cerrar el jdialog no baja la memoria a su tamaño normal se queda en el tamaño que crecio al abrir el jdialog y asi es copn todo y me parece extraño ya que a los dialog los cierro con dispose().
aluna sugerencia que me podria decir de como hacer para que baje la memoria cuando no se use las ventanas, o cuando se realize una consulta con la BD, ya que me preocupa porque mi programa va a ser corrido en algunos casos en maquinas que tiene 256mb de ram mi temor es que colapse.
esto es de suma urgencia ya que por esto aun no puedo sustentar mi programa.
de antemano se los agradesco

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de iberck

Eso es un poco extraño,

Eso es un poco extraño, podrías poner la parte crítica de tu código fuente ?

JavaRanch big moose saloon member

Imagen de miguelr22

Aui te mando el codigo

bueno aqui te mando la manera de como llamo a mi jdialog:
 

Bueno, por mi parte yo lo veo bien, ahora te mando el codigo la parte inicial del jdialog:
 
como dije anteriormente en todos los jdialog que llamo crecen pero este que te mando es el que crece mas de memoria que los otros por eso te lo mando, a mi parecer ahi no veo nada extaño.
Esperes tu encuentre el problema y lo puedas solucionar.
de antemano te lo agradesco

Imagen de iberck

El codigo parece estar bien,

El codigo parece estar bien, que tanto crece la memoria?

JavaRanch big moose saloon member

Imagen de miguelr22

Crece Aproximadamente...

bueno crece Aproximadamente entre 5 y 10mb, peor a mi lo que me preocupa mas es que al cerrar el jdialog sigue con esos 5 mb de memoria de mas osea mi programa esta corriendo con una memoria de 30mb de ram cuando abro el dialog sube hasta 40mb y supuestamente si cierro el dialog deberia bajar de nuevo a los 30mb, pero no mi programa sigue con los 40mb y si abro otro jdialog sigue subiendo hasta ah llegoad a los 65mb, y no tengo idea como hacer para que baje al minimizarlo si baja pero no quiero estar minimizando a cada rato es mas mi programa va aser usado por otras personas que derrepente ni lo piensan minimizar.
espero que me puedas ayudar.

Imagen de iberck

Ok, el comportamiento por

Ok, el comportamiento por default de un JDialog al cerrarse es "disponse" (Nb) lo cual significa que ahi queda para ser reutilizado cuando lo vuelvas a invocar, esa es la razón por la que la memoria no baja cada que lo cierras.
El problema aqui esque no existe alguna otra operación por default (setDefaultCloseOperation) que pueda ayudarte, por lo tanto la alternativa que yo veo es que al cerrar el JDialog le avises al padre para que éste lo iguale a null y el garbage collector pase por él en algún momento, de esta forma debería liberarse la memoria.

JavaRanch big moose saloon member

Imagen de miguelr22

Gracias por la respuesta

Gracias por la respuesta, pero no tengo idea de como avisarle al padre(en este caso viene a ser mi jFrame), que el jdialog ah sido cerrado para ponerlo en valor nulo.
me podrias dar una idea de como hago eso?

mi opinion

Mira yo te hago las siguientes odservaciones..
*veo que en cada JDialog tienes una conexion, yo te recomendaria que solo tengas una para toda tu aplicacion..

En cuando al JDialog aqui te adjunto el codigo fuente de como los he trabajado, odserva con cuidado que yo en ningun momento tengo un Connection o un ResultSet o un Statement.
A la hora de llamarlo mando a llamar el metodo static showMessage(xxx,xxx);
Saludos

 

Imagen de Nopalin

Coloca el código

Podrias colocar todo el código de tu dialogo? inclusive el evento en el Frame que lo manda a llamar.

Además recuerda que el código es para que lo entiendan los demás, no solo tú, dale un poco de formato.

Sobres

juego memoria

Hola tengo que programar un juego en java que es memoria pero no se por favor me podrian enviar el codigo, seria de mucha utilidad el juegoconsiste en encontrar pares y se sube de nivel mientras mas rapido logremos encontrarlos y se pierde cuando el tiempo se acaba

Imagen de benek

En este hilo no se está

En este hilo no se está discutiendo acerca del juego de memoria, sino de la RAM en Java.

Para aprovechar y orientarte (porque nadie aquí creo que te vaya a hacer tu tarea) puedes basarte en JPexeso, que es un juego de memoria hecho en Java, la página oficial es la siguiente:

Saludos.

--
Javier Benek