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

problema con memoria del javaw.exe?

Estas en el tema de problema con memoria del javaw.exe? en el foro de Java en Foros del Web. bueno resulta q hecho una aplicacion en java para escritorio y al rato de utilizarla el proceso javaw.exe crece muchisimo y termina colgandose alguien sabes ...
  #1 (permalink)  
Antiguo 17/01/2008, 12:41
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 3 meses
Puntos: 6
problema con memoria del javaw.exe?

bueno resulta q hecho una aplicacion en java para escritorio y al rato de utilizarla el proceso javaw.exe crece muchisimo y termina colgandose alguien sabes como hago para q se libere la memoria?
cierro todas la ventanas con dispose
saludos y gracias.....
  #2 (permalink)  
Antiguo 18/01/2008, 02:39
 
Fecha de Ingreso: enero-2008
Mensajes: 16
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: problema con memoria del javaw.exe?

Hola!
Pues no sé exactamente que haces en tu programa. No sé si sabes como funciona la gestión de memoria en Java, pero la manera de hacer lo que tú quieres hacer es llamando a la GC (garbage collector, recolector de basura). Para llamarla simplemente ejecuta
Código:
System.gc();
Le llevará un poquito de rato, pero liberará todo aquello que quede por liberar. Aún así java debería estar liberando tu memoria automáticamente.
  #3 (permalink)  
Antiguo 18/01/2008, 03:31
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: problema con memoria del javaw.exe?

Cita:
Iniciado por josimapi Ver Mensaje
Le llevará un poquito de rato, pero liberará todo aquello que quede por liberar. Aún así java debería estar liberando tu memoria automáticamente.
Para no llevarse sorpresas, conviene aclarar que llamar a System.gc no garantiza que la JVM liberará toda la memoria que se pudiera liberar.

La JVM solo te dice hará lo que pueda, pero no hay que tomar la memoria que te quede como "no se puede liberar más", ya que puede no ser cierto.

S!
  #4 (permalink)  
Antiguo 19/01/2008, 06:52
 
Fecha de Ingreso: enero-2008
Mensajes: 16
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: problema con memoria del javaw.exe?

Cita:
Para no llevarse sorpresas, conviene aclarar que llamar a System.gc no garantiza que la JVM liberará toda la memoria que se pudiera liberar.
O sea que si la JVM ve que algo que está desreferenciado y que podría liberarlo puede que no lo liberase, es lo que estás diciendo. Todo algoritmo de garbage collection si ve que un objeto está desreferenciado lo que hace es llamar al método finalize del mismo.

http://www.javaworld.com/javaworld/jw-08-1996/jw-08-gc.html?page=1
  #5 (permalink)  
Antiguo 19/01/2008, 11:51
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: problema con memoria del javaw.exe?

Estoy diciendo lo que dice la documentación y lo que dice la especificacion de la JVM, simplemente que no existe una garantía de que el GC libere toda la memoria que podría. No todo es tan facil como "un objeto que no esta referenciado". Hay soft references, hay objetos con relaciones anidadas etc. etc. Y llamar a System.gc es pedirle al GC que intente liberar lo que pueda en un tiempo razonable, pero no puedes asegurar que cuando termine todo lo que se podria limpiar lo esté.

Igualmente, el metodo finalize() no esta garantizado que se llame, ni cuando. Así que tampoco es fiable para segun que cosas.

Gracias por la referencia pero se bastante bien como funciona el GC, de hecho es mejor mirar referencias más actuales puesto que desde 1996 hasta ahora ha evolucionado mucho.

S!
  #6 (permalink)  
Antiguo 19/01/2008, 22:36
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 3 meses
Puntos: 6
Re: problema con memoria del javaw.exe?

Gracias por el consejo pero segun la doc de java System.gc lo unico q hace es decirle al recolector de basura q es un buen momento para ejecutares pero no quiere decir q lo vaya a hacer, pensando un poco yo utilizo muchas JTable casi todas las ventanas poseen al menos una si la cambio por JList podria disminuir en algo el consumo de memoria?
saludos
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 09:55.