Garbage Collector, ente con vida propia?

29/07/2004 - 23:16 por AJPB | Informe spam
Parece que el tema del garbage collector en Vb.Net no esta
muy bien cubierto, tengo 6 libros diferentes y apenas lo
nombran. Desarrollo una aplicacion que practicamente es un
scada, eso significa muchas imagenes, muchas animaciones,
muchos datos, muchos controles, mucho espacio en memoria.
Cuando la aplicacion se levanta se lleva unos 300 megas y
a medida que se van abriendo pantallas aumenta
peligrosamente. He sido cuidadoso con los recursos, de
hecho antes de abrir una nueva ventana cierro la anterior
e incluyo un clsForms.AnyForm = Nothing en su Dispose,
siguiendo los consejos de un buen amigo programador, pero
nada mejora, la memoria sigue igual. Tambien hago una
llamada al GC, pero parece que este trabaja cuando le
viene en gana, pues solo cuando la memoria va por los 550 -
600 es que empieza a liberarse. Se puede confiar en el
GC de VB.Net?
 

Leer las respuestas

#1 DJ_MIAO
30/07/2004 - 00:31 | Informe spam
Flaco tienes toda la rason.
Ese tema lo tienes bajo la mesa.Te dejan ver un poco pero
no lo suficiente.
Segun la teoria hay un evento Finalize este evento se
dispara justo antes de que nuestro objeto sea eliminado
de la memoria por el GC.En ese momento el GC de verificar
si tiene un evento Finalize asociado. De ser asi lo pasa
a una lista separada para que se valla ejecutando el
codigo del evento y continua con su proceso normal(sin
eliminar el codugo en memoria.Luego la proxima pasada
elimina definitivamente el objeto que esten pendientes.
(el problema es que tendria que dar 2 pasadas para
liberar los recursos.
Desventajas
1. No sabemos cuando diablos GC se ejecuta solo el CLR
sabe.

2.Si un objeto tiene el evento Finalize tiene que dar 2
pasadas.


Segun entendi en el libro tiene muchas ventas que en vb6
no tiene.No se un diablo de vb6.Pero eso dice el libro. Y
pues por FE lo creo de igual forma por FE hay que confiar
en GC.

Aki unas preguntas para los "EXPERTOS" no hay forma de
entrar al CLR ? el CLR no se puede modificar no hay
eramientas asi como Microsoft .NET Framework 1.1
Configuration.? O hay que esperar que un hacker lo
encuentre la manera para usarlo para jorobar?


Miao...


Parece que el tema del garbage collector en Vb.Net no


esta
muy bien cubierto, tengo 6 libros diferentes y apenas lo
nombran. Desarrollo una aplicacion que practicamente es


un
scada, eso significa muchas imagenes, muchas


animaciones,
muchos datos, muchos controles, mucho espacio en


memoria.
Cuando la aplicacion se levanta se lleva unos 300 megas


y
a medida que se van abriendo pantallas aumenta
peligrosamente. He sido cuidadoso con los recursos, de
hecho antes de abrir una nueva ventana cierro la


anterior
e incluyo un clsForms.AnyForm = Nothing en su Dispose,
siguiendo los consejos de un buen amigo programador,


pero
nada mejora, la memoria sigue igual. Tambien hago una
llamada al GC, pero parece que este trabaja cuando le
viene en gana, pues solo cuando la memoria va por los


550 -
600 es que empieza a liberarse. Se puede confiar en el
GC de VB.Net?
.

Preguntas similares