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
- Inicie sesión o regístrese para enviar comentarios
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
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
El codigo parece estar bien,
El codigo parece estar bien, que tanto crece la memoria?
JavaRanch big moose saloon member
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.
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
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
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
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